Parameters
Signature
type 'elt tree = | Leaf| Node of 'elt tree * key * 'elt * 'elt tree * I.t
val tree_rect :
'a2 ->
('a1 tree -> 'a2 -> key -> 'a1 -> 'a1 tree -> 'a2 -> I.t -> 'a2) ->
'a1 tree ->
'a2val tree_rec :
'a2 ->
('a1 tree -> 'a2 -> key -> 'a1 -> 'a1 tree -> 'a2 -> I.t -> 'a2) ->
'a1 tree ->
'a2val is_empty : 'a1 tree -> boolval find : X.t -> 'a1 tree -> 'a1 optiontype 'elt triple = {t_left : 'elt tree;t_opt : 'elt option;t_right : 'elt tree;
}val t_opt : 'a1 triple -> 'a1 optionval elements_aux : (key * 'a1) list -> 'a1 tree -> (key * 'a1) listval elements : 'a1 tree -> (key * 'a1) listval fold : (key -> 'a1 -> 'a2 -> 'a2) -> 'a1 tree -> 'a2 -> 'a2val equal : ('a1 -> 'a1 -> bool) -> 'a1 tree -> 'a1 tree -> boolval map : ('a1 -> 'a2) -> 'a1 tree -> 'a2 treeval map_option : (key -> 'a1 -> 'a2 option) -> 'a1 tree -> 'a2 treeval map2 :
('a1 option -> 'a2 option -> 'a3 option) ->
'a1 tree ->
'a2 tree ->
'a3 tree