sig
type ('k, 'v) t
type 'a with_init_args = 'a
val cps_create : f:(('a, 'c) t -> 'b) -> 'b with_init_args
val clear : ('k, 'v) t -> unit
val replace : ('k, 'v) t -> key:'k -> data:'v -> unit
val find : ('k, 'v) t -> 'k -> 'v option
val data : ('a, 'v) t -> 'v list
val remove : ('k, 'v) t -> 'k -> unit
end