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