`sig
module type T =
sig
type t
module Element : sig type t end
val nil : Cf_set.T.t
val empty : Cf_set.T.t -> bool
val size : Cf_set.T.t -> int
val member : Cf_set.T.Element.t -> Cf_set.T.t -> bool
val singleton : Cf_set.T.Element.t -> Cf_set.T.t
val min : Cf_set.T.t -> Cf_set.T.Element.t
val max : Cf_set.T.t -> Cf_set.T.Element.t
val put : Cf_set.T.Element.t -> Cf_set.T.t -> Cf_set.T.t
val clear : Cf_set.T.Element.t -> Cf_set.T.t -> Cf_set.T.t
val union : Cf_set.T.t -> Cf_set.T.t -> Cf_set.T.t
val diff : Cf_set.T.t -> Cf_set.T.t -> Cf_set.T.t
val intersect : Cf_set.T.t -> Cf_set.T.t -> Cf_set.T.t
val compare : Cf_set.T.t -> Cf_set.T.t -> int
val subset : Cf_set.T.t -> Cf_set.T.t -> bool
val of_list : Cf_set.T.Element.t list -> Cf_set.T.t
val of_list_incr : Cf_set.T.Element.t list -> Cf_set.T.t
val of_list_decr : Cf_set.T.Element.t list -> Cf_set.T.t
val of_seq : Cf_set.T.Element.t Cf_seq.t -> Cf_set.T.t
val of_seq_incr : Cf_set.T.Element.t Cf_seq.t -> Cf_set.T.t
val of_seq_decr : Cf_set.T.Element.t Cf_seq.t -> Cf_set.T.t
val to_list_incr : Cf_set.T.t -> Cf_set.T.Element.t list
val to_list_decr : Cf_set.T.t -> Cf_set.T.Element.t list
val to_seq_incr : Cf_set.T.t -> Cf_set.T.Element.t Cf_seq.t
val to_seq_decr : Cf_set.T.t -> Cf_set.T.Element.t Cf_seq.t
val nearest_decr :
Cf_set.T.Element.t -> Cf_set.T.t -> Cf_set.T.Element.t Cf_seq.t
val nearest_incr :
Cf_set.T.Element.t -> Cf_set.T.t -> Cf_set.T.Element.t Cf_seq.t
val iterate : (Cf_set.T.Element.t -> unit) -> Cf_set.T.t -> unit
val predicate : (Cf_set.T.Element.t -> bool) -> Cf_set.T.t -> bool
val fold : ('a -> Cf_set.T.Element.t -> 'a) -> 'a -> Cf_set.T.t -> 'a
val filter : (Cf_set.T.Element.t -> bool) -> Cf_set.T.t -> Cf_set.T.t
val partition :
(Cf_set.T.Element.t -> bool) -> Cf_set.T.t -> Cf_set.T.t * Cf_set.T.t
end
end`