Module IntMake.Raw

type elt = X.t
type tree =
  1. | Leaf
  2. | Node of I.t * tree * X.t * tree
val empty : tree
val is_empty : tree -> bool
val mem : X.t -> tree -> bool
val min_elt : tree -> elt option
val max_elt : tree -> elt option
val choose : tree -> elt option
val fold : (elt -> 'a1 -> 'a1) -> tree -> 'a1 -> 'a1
val elements_aux : X.t list -> tree -> X.t list
val elements : tree -> X.t list
val rev_elements_aux : X.t list -> tree -> X.t list
val rev_elements : tree -> X.t list
val cardinal : tree -> int
val maxdepth : tree -> int
val mindepth : tree -> int
val for_all : (elt -> bool) -> tree -> bool
val exists_ : (elt -> bool) -> tree -> bool
type enumeration =
  1. | End
  2. | More of elt * tree * enumeration
val cons : tree -> enumeration -> enumeration
val compare_end : enumeration -> Datatypes.comparison
val compare : tree -> tree -> Datatypes.comparison
val equal : tree -> tree -> bool
val subsetl : (tree -> bool) -> X.t -> tree -> bool
val subsetr : (tree -> bool) -> X.t -> tree -> bool
val subset : tree -> tree -> bool
type t = tree
val height : t -> I.t
val singleton : X.t -> tree
val create : t -> X.t -> t -> tree
val assert_false : t -> X.t -> t -> tree
val bal : t -> X.t -> t -> tree
val add : X.t -> tree -> tree
val join : tree -> elt -> t -> t
val remove_min : tree -> elt -> t -> t * elt
val merge : tree -> tree -> tree
val remove : X.t -> tree -> tree
val concat : tree -> tree -> tree
type triple = {
  1. t_left : t;
  2. t_in : bool;
  3. t_right : t;
}
val t_left : triple -> t
val t_in : triple -> bool
val t_right : triple -> t
val split : X.t -> tree -> triple
val inter : tree -> tree -> tree
val diff : tree -> tree -> tree
val union : tree -> tree -> tree
val filter : (elt -> bool) -> tree -> tree
val partition : (elt -> bool) -> t -> t * t
val ltb_tree : X.t -> tree -> bool
val gtb_tree : X.t -> tree -> bool
val isok : tree -> bool
module MX : sig ... end
module L : sig ... end
val flatten_e : enumeration -> elt list