`sig type data type t val create : int -> Weak.S.t val clear : Weak.S.t -> unit val merge : Weak.S.t -> Weak.S.data -> Weak.S.data val add : Weak.S.t -> Weak.S.data -> unit val remove : Weak.S.t -> Weak.S.data -> unit val find : Weak.S.t -> Weak.S.data -> Weak.S.data val find_all : Weak.S.t -> Weak.S.data -> Weak.S.data list val mem : Weak.S.t -> Weak.S.data -> bool val iter : (Weak.S.data -> unit) -> Weak.S.t -> unit val fold : (Weak.S.data -> 'a -> 'a) -> Weak.S.t -> 'a -> 'a val count : Weak.S.t -> int val stats : Weak.S.t -> int * int * int * int * int * int end`