sig
module Box :
sig
type 'a t
val inject : 'a -> 'a Weak_hashtbl.Box.t
val project : 'a Weak_hashtbl.Box.t -> 'a
end
type ('a, 'b) t
val create : 'a Core.Std.Hashtbl.Hashable.t -> ('a, 'b) Weak_hashtbl.t
val find : ('a, 'b) Weak_hashtbl.t -> 'a -> 'b option
val find_or_add :
('a, 'b) Weak_hashtbl.t ->
'a -> default:(unit -> 'b Weak_hashtbl.Box.t) -> 'b
val remove : ('a, 'b) Weak_hashtbl.t -> 'a -> unit
val replace :
('a, 'b) Weak_hashtbl.t -> key:'a -> data:'b Weak_hashtbl.Box.t -> unit
val ounit_tests : unit -> OUnit.test
end