functor (H : HashedType->
  sig
    type elt = H.t
    type t
    val empty : unit -> t
    val create : int -> elt -> t
    val length : t -> int
    val capacity : t -> int
    val mem : t -> elt -> bool
    val clear : t -> unit
    val copy : t -> t
    val iter_v : (elt -> unit) -> t -> unit
    val iter : (elt -> unit) -> t -> unit
    val add_unsafe : t -> elt -> unit
    val copy_resize : t -> int -> t
    val resize : t -> elt -> unit
    val add : t -> elt -> unit
    val remove : t -> elt -> unit
    val create_from_list : elt list -> t
    val bucket_lengths : t -> int array
    val fold : (elt -> '-> 'a) -> t -> '-> 'a
    val for_all : (elt -> bool) -> t -> bool
    val exists : (elt -> bool) -> t -> bool
    val keys : t -> elt array
    val equal : t -> t -> bool
    val update : t -> t -> unit
    val diff_update : t -> t -> unit
    val symmetric_diff_update : t -> t -> unit
    val inter_update : t -> t -> unit
    val union : t -> t -> t
    val diff : t -> t -> t
    val symmetric_diff : t -> t -> t
    val inter : t -> t -> t
  end