sig   type 'a sequence = ('-> unit) -> unit   type 'a printer = Format.formatter -> '-> unit   module type S =     sig       type t       type elt       val create : int -> CCHashSet.S.t       val singleton : CCHashSet.S.elt -> CCHashSet.S.t       val clear : CCHashSet.S.t -> unit       val copy : CCHashSet.S.t -> CCHashSet.S.t       val copy_into : into:CCHashSet.S.t -> CCHashSet.S.t -> unit       val insert : CCHashSet.S.t -> CCHashSet.S.elt -> unit       val remove : CCHashSet.S.t -> CCHashSet.S.elt -> unit       val cardinal : CCHashSet.S.t -> int       val mem : CCHashSet.S.t -> CCHashSet.S.elt -> bool       val find_exn : CCHashSet.S.t -> CCHashSet.S.elt -> CCHashSet.S.elt       val find : CCHashSet.S.t -> CCHashSet.S.elt -> CCHashSet.S.elt option       val inter : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t       val inter_mut : into:CCHashSet.S.t -> CCHashSet.S.t -> unit       val union : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t       val union_mut : into:CCHashSet.S.t -> CCHashSet.S.t -> unit       val diff : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t       val subset : CCHashSet.S.t -> CCHashSet.S.t -> bool       val equal : CCHashSet.S.t -> CCHashSet.S.t -> bool       val for_all : (CCHashSet.S.elt -> bool) -> CCHashSet.S.t -> bool       val exists : (CCHashSet.S.elt -> bool) -> CCHashSet.S.t -> bool       val iter : (CCHashSet.S.elt -> unit) -> CCHashSet.S.t -> unit       val fold : ('-> CCHashSet.S.elt -> 'a) -> '-> CCHashSet.S.t -> 'a       val elements : CCHashSet.S.t -> CCHashSet.S.elt list       val of_list : CCHashSet.S.elt list -> CCHashSet.S.t       val to_seq : CCHashSet.S.t -> CCHashSet.S.elt CCHashSet.sequence       val of_seq : CCHashSet.S.elt CCHashSet.sequence -> CCHashSet.S.t       val add_seq :         CCHashSet.S.t -> CCHashSet.S.elt CCHashSet.sequence -> unit       val pp :         ?sep:string ->         CCHashSet.S.elt CCHashSet.printer -> CCHashSet.S.t CCHashSet.printer     end   module type ELEMENT =     sig       type t       val equal : CCHashSet.ELEMENT.t -> CCHashSet.ELEMENT.t -> bool       val hash : CCHashSet.ELEMENT.t -> int     end   module Make :     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 end