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