sig
type 'a sequence = ('a -> unit) -> unit
type 'a printer = Format.formatter -> 'a -> 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 : ('a -> CCHashSet.S.elt -> 'a) -> '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 : ('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
end