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