# Module Hash_set

    module Hash_set: sig .. end

We use `with sexp_of` but not `with sexp` because we want people to be explicit about the hash and comparison functions used when creating hashtables. One can use `Hash_set.Poly.t`, which does have `with sexp`, to use polymorphic comparison and hashing.

    type 'a t

We use `with sexp_of` but not `with sexp` because we want people to be explicit about the hash and comparison functions used when creating hashtables. One can use `Hash_set.Poly.t`, which does have `with sexp`, to use polymorphic comparison and hashing.

    include Creators

    include Accessors

    module type Elt = Core_hashtbl.Key

    module type Elt_binable = Core_hashtbl.Key_binable

    module type S = S          with type 'a hash_set = 'a t

    module type S_binable = S_binable  with type 'a hash_set = 'a t

    module Poly: sig .. end  with type 'a t = 'a t

A hash set that uses polymorphic comparison

    module Make: functor (Elt : Elt) -> S          with type elt = Elt.t

    module Make_binable: functor (Elt : Elt_binable) -> S_binable  with type elt = Elt.t

    val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t

We use `with sexp_of` but not `with sexp` because we want people to be explicit about the hash and comparison functions used when creating hashtables. One can use `Hash_set.Poly.t`, which does have `with sexp`, to use polymorphic comparison and hashing.
A hash set that uses polymorphic comparison