functor (X : Hashtbl.HashedType->
  sig
    type elt = X.t
    type t = int Hashtbl.Make(X).t
    val create : int -> t
    val incr : t -> elt -> unit
    val incr_by : t -> int -> elt -> unit
    val get : t -> elt -> int
    val decr : t -> elt -> unit
    val length : t -> int
    val add_seq : t -> elt sequence -> unit
    val of_seq : elt sequence -> t
    val to_seq : t -> (elt * int) sequence
    val add_list : t -> (elt * int) list -> unit
    val of_list : (elt * int) list -> t
    val to_list : t -> (elt * int) list
  end