Module Set_gen

type 'a t = private
  1. | Empty
  2. | Leaf of 'a
  3. | Node of {
    1. l : 'a t;
    2. v : 'a;
    3. r : 'a t;
    4. h : int;
    }
val empty : 'a t
val is_empty : 'a t -> bool
val unsafe_two_elements : 'a -> 'a -> 'a t
val cardinal : 'a t -> int
val elements : 'a t -> 'a list
val choose : 'a t -> 'a
val iter : 'a t -> ('a -> unit) -> unit
val fold : 'a t -> 'c -> ('a -> 'c -> 'c) -> 'c
val for_all : 'a t -> ('a -> bool) -> bool
val exists : 'a t -> ('a -> bool) -> bool
val check : 'a t -> unit
val bal : 'a t -> 'a -> 'a t -> 'a t
val remove_min_elt : 'a t -> 'a t
val singleton : 'a -> 'a t
val internal_merge : 'a t -> 'a t -> 'a t
val internal_join : 'a t -> 'a -> 'a t -> 'a t
val internal_concat : 'a t -> 'a t -> 'a t
val partition : 'a t -> ('a -> bool) -> 'a t * 'a t
val of_sorted_array : 'a array -> 'a t
val is_ordered : cmp:('a -> 'a -> int) -> 'a t -> bool
val invariant : cmp:('a -> 'a -> int) -> 'a t -> bool
module type S = sig ... end