type 'a t = private | Empty| Leaf of 'a| Node of {l : 'a t;v : 'a;r : 'a t;h : int;
}
val is_empty : 'a t -> boolval unsafe_two_elements : 'a -> 'a -> 'a tval cardinal : 'a t -> intval elements : 'a t -> 'a listval iter : 'a t -> ('a -> unit) -> unitval fold : 'a t -> 'c -> ('a -> 'c -> 'c) -> 'cval for_all : 'a t -> ('a -> bool) -> boolval exists : 'a t -> ('a -> bool) -> boolval bal : 'a t -> 'a -> 'a t -> 'a tval remove_min_elt : 'a t -> 'a tval singleton : 'a -> 'a tval internal_merge : 'a t -> 'a t -> 'a tval internal_join : 'a t -> 'a -> 'a t -> 'a tval internal_concat : 'a t -> 'a t -> 'a tval partition : 'a t -> ('a -> bool) -> 'a t * 'a tval of_sorted_array : 'a array -> 'a tval is_ordered : cmp:('a -> 'a -> int) -> 'a t -> boolval invariant : cmp:('a -> 'a -> int) -> 'a t -> boolmodule type S = sig ... end