functor (H : Hashtbl.HashedType->
  sig
    type data = H.t
    type t
    val create : int -> t
    val clear : t -> unit
    val merge : t -> data -> data
    val merge_map : t -> data -> (data -> data) -> data
    val add : t -> data -> unit
    val remove : t -> data -> unit
    val find : t -> data -> data
    val find_all : t -> data -> data list
    val mem : t -> data -> bool
    val iter : (data -> unit) -> t -> unit
    val fold : (data -> '-> 'a) -> t -> '-> 'a
    val count : t -> int
    val stats : t -> int * int * int * int * int * int
    val print :
      ?first:(unit, Format.formatter, unit) format ->
      ?sep:(unit, Format.formatter, unit) format ->
      ?last:(unit, Format.formatter, unit) format ->
      (Format.formatter -> data -> unit) -> Format.formatter -> t -> unit
  end