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 : ('-> elt -> '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