functor (E : ELEMENT) ->
sig
type t
type elt = E.t
val create : int -> t
val singleton : elt -> t
val clear : t -> unit
val copy : t -> t
val copy_into : into:t -> t -> unit
val insert : t -> elt -> unit
val remove : t -> elt -> unit
val cardinal : t -> int
val mem : t -> elt -> bool
val find_exn : t -> elt -> elt
val find : t -> elt -> elt option
val inter : t -> t -> t
val inter_mut : into:t -> t -> unit
val union : t -> t -> t
val union_mut : into:t -> t -> unit
val diff : t -> t -> t
val subset : t -> t -> bool
val equal : t -> t -> bool
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
val elements : t -> elt list
val of_list : elt list -> t
val to_seq : t -> elt sequence
val of_seq : elt sequence -> t
val add_seq : t -> elt sequence -> unit
val pp : ?sep:string -> elt printer -> t printer
end