Module Js_parser.Flow_map
type t0('k, 'v) =
| Empty
| Leaf of {
v: 'k,
d: 'v,
}
| Node of {
h: int,
v: 'k,
d: 'v,
l: t0('k, 'v),
r: t0('k, 'v),
}
;
type partial_node('k, 'v) = {
h: int,
v: 'k,
d: 'v,
l: t0('k, 'v),
r: t0('k, 'v),
};
type leaf_tuple('k, 'v) = ('k, 'v);
let height: t0('a, 'b) => int;
let singleton: 'a => 'b => t0('a, 'b);
let sorted_two_nodes_larger: t0('a, 'b) => 'a => 'b => t0('a, 'b);
let sorted_two_nodes_smaller: 'a => 'b => t0('a, 'b) => t0('a, 'b);
let create: t0('a, 'b) => 'a => 'b => t0('a, 'b) => t0('a, 'b);
let of_increasing_iterator_unchecked: (unit => ('a, 'b)) => int => t0('a, 'b);
let of_sorted_array_unchecked: array(('a, 'b)) => t0('a, 'b);
let node: t0('a, 'b) => 'a => 'b => t0('a, 'b) => t0('a, 'b);
let bal: t0('a, 'b) => 'a => 'b => t0('a, 'b) => t0('a, 'b);
let is_empty: t0('a, 'b) => bool;
type enumeration('key, 'a) =
| End
| More('key, 'a, t0('key, 'a), enumeration('key, 'a))
;
let min_binding_from_node_unsafe: t0('a, 'b) => leaf_tuple('a, 'b);
let min_binding_opt: t0('a, 'b) => option(('a, 'b));
let max_binding_opt: t0('a, 'b) => option(('a, 'b));
let remove_min_binding_from_node_unsafe: t0('a, 'b) => t0('a, 'b);
let add_min_node: t0('a, 'b) => t0('a, 'b) => t0('a, 'b);
let add_min_binding: 'a => 'b => t0('a, 'b) => t0('a, 'b);
let add_max_node: t0('a, 'b) => t0('a, 'b) => t0('a, 'b);
let add_max_binding: 'a => 'b => t0('a, 'b) => t0('a, 'b);
let internal_merge: t0('a, 'b) => t0('a, 'b) => t0('a, 'b);
let join: t0('a, 'b) => 'a => 'b => t0('a, 'b) => t0('a, 'b);
let concat: t0('a, 'b) => t0('a, 'b) => t0('a, 'b);
let concat_or_join: t0('a, 'b) => 'a => option('b) => t0('a, 'b) => t0('a, 'b);
let iter: ('a => 'b => unit) => t0('a, 'b) => unit;
let map: ('a => 'b) => t0('c, 'a) => t0('c, 'b);
let mapi: ('a => 'b => 'c) => t0('a, 'b) => t0('a, 'c);
let fold: ('a => 'b => 'c => 'c) => t0('a, 'b) => 'c => 'c;
let keys_aux: list('a) => t0('a, 'b) => list('a);
let keys: t0('a, 'b) => list('a);
let ordered_keys: t0('a, 'b) => list('a);
let for_all: ('a => 'b => bool) => t0('a, 'b) => bool;
let exists: ('a => 'b => bool) => t0('a, 'b) => bool;
let filter: ('a => 'b => bool) => t0('a, 'b) => t0('a, 'b);
let cardinal: t0('a, 'b) => int;
type t1('k, 'v) = t0('k, 'v) =
| Empty
| Leaf of {
v: 'k,
d: 'v,
}
| Node of {
h: int,
v: 'k,
d: 'v,
l: t0('k, 'v),
r: t0('k, 'v),
}
;