functor (H : Hashtbl.HashedType->
  sig
    type data = H.t
    and 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) -> Weak.S.t -> '-> 'a
    val count : Weak.S.t -> int
    val stats : Weak.S.t -> int * int * int * int * int * int
  end