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