sig
  type t
  type 'a key
  val mem : 'a Abstract.Interface.key -> bool
  val get : 'a Abstract.Interface.key -> (Abstract.Interface.t -> 'a) option
  val set :
    'a Abstract.Interface.key ->
    'a -> Abstract.Interface.t -> Abstract.Interface.t
end