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 : ('-> Element.t -> 'a) -> '-> t -> 'a
    val filter : (Element.t -> bool) -> t -> t
    val partition : (Element.t -> bool) -> t -> t * t
  end