sig
  type 'a t
  val create : unit -> 'Store.t
  val add : 'Store.t -> '-> Constr.t
  val remove : 'Store.t -> Constr.t -> unit
  val find : 'Store.t -> Constr.t -> 'a
  val replace : 'Store.t -> Constr.t -> '-> unit
end