sig
  type elt
  type t
  module T : sig type 'a elt = elt type 'a t = t end
  val create : int -> Hash_set_intf.S.t
  val add : Hash_set_intf.S.t -> Hash_set_intf.S.elt -> unit
  val strict_add : Hash_set_intf.S.t -> Hash_set_intf.S.elt -> unit
  val remove : Hash_set_intf.S.t -> Hash_set_intf.S.elt -> unit
  val strict_remove : Hash_set_intf.S.t -> Hash_set_intf.S.elt -> unit
  val clear : Hash_set_intf.S.t -> unit
  val fold :
    f:('-> Hash_set_intf.S.elt -> 'a) -> init:'-> Hash_set_intf.S.t -> 'a
  val iter : f:(Hash_set_intf.S.elt -> unit) -> Hash_set_intf.S.t -> unit
  val length : Hash_set_intf.S.t -> int
  val mem : Hash_set_intf.S.t -> Hash_set_intf.S.elt -> bool
  val is_empty : Hash_set_intf.S.t -> bool
  val of_list : Hash_set_intf.S.elt list -> Hash_set_intf.S.t
  val to_list : Hash_set_intf.S.t -> Hash_set_intf.S.elt list
  val equal : Hash_set_intf.S.t -> Hash_set_intf.S.t -> bool
  val sexp_of_t : Hash_set_intf.S.t -> Sexplib.Sexp.t
  val t_of_sexp : Sexplib.Sexp.t -> Hash_set_intf.S.t
end