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