`include Core_kernel__.Hash_set_intf.S`
`include Core_kernel__.Hash_set_intf.S_plain`
`type elt`````
`type 'a hash_set`````
`type t``= elt hash_set```
`include sig ... end`
`val sexp_of_t : t ‑> Base.Sexp.t`
`type 'a t_``= t```
`type 'a elt_``= elt```
`include Core_kernel__.Hash_set_intf.Creators_generic with type a t := a t_ with type a elt := a elt_ with type (a, z) create_options := (a, z) Core_kernel__.Hash_set_intf.create_options_without_first_class_module`
`type 'a t`````
`type 'a elt`````
`type ('a, 'z) create_options`````
`val create : ('a, unit ‑> 'a t) create_options`
`val of_list : ('a, 'a elt list ‑> 'a t) create_options`
`module Provide_of_sexp : functor (X : sig ... end with type t := elt) -> sig ... end with type t := t`
`module Provide_bin_io : functor (X : sig ... end with type t := elt) -> sig ... end with type t := t`
`include sig ... end with type t := t`
`type t`````
`include sig ... end`
`val t_of_sexp : Base.Sexp.t ‑> t`
`include Core_kernel__.Hash_set_intf.Binable.S with type t := t`
`type t`````
`include Core_kernel__.Hash_set_intf.Binable.S_only_functions with type t := t`
`type t`````
`val bin_size_t : t Bin_prot.Size.sizer`
`val bin_write_t : t Bin_prot.Write.writer`
`val bin_read_t : t Bin_prot.Read.reader`
`val __bin_read_t__ : (int ‑> t) Bin_prot.Read.reader`

This function only needs implementation if `t` exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant `t` afterwards.

`val bin_shape_t : Bin_prot.Shape.t`
`val bin_writer_t : t Bin_prot.Type_class.writer`
`val bin_reader_t : t Bin_prot.Type_class.reader`
`val bin_t : t Bin_prot.Type_class.t`