Module Js_parser.Flow_set

module type OrderedType = { ... };
module type S = { ... };
type t0('elt) =
  1. | Empty
  2. | Leaf('elt)
  3. | Node of {
    1. h: int,
    2. v: 'elt,
    3. l: t0('elt),
    4. r: t0('elt),
    }
;
type partial_node('elt) = {
  1. h: int,
  2. v: 'elt,
  3. l: t0('elt),
  4. r: t0('elt),
};
let (~!): t0('elt) => partial_node('elt);
type enumeration0('elt, 't) =
  1. | End
  2. | More('elt, 't, enumeration0('elt, 't))
;
let cons_enum: t0('a) => enumeration0('b, t0('c)) => enumeration0('b, t0('c));
let seq_of_enum_: enumeration0('a, t0('b)) => Seq.t('c);
let to_seq: t0('a) => Seq.t('b);
let height: t0('a) => int;
let singleton: 'a => t0('b);
let unsafe_node: l:t0('a) => v:'b => r:t0('c) => t0('d);
let create: t0('a) => 'b => t0('c) => t0('d);
let of_increasing_iterator_unchecked: (unit => 'a) => int => t0('b);
let of_sorted_array_unchecked: array('a) => t0('b);
let bal: t0('a) => 'b => t0('a) => t0('c);
let add_min_element: 'a => t0('b) => t0('c);
let add_max_element: 'a => t0('b) => t0('c);
let join: t0('a) => 'b => t0('a) => t0('c);
let min_elt: t0('a) => 'b;
let min_elt_opt: t0('a) => option('b);
let max_elt: t0('a) => 'b;
let max_elt_opt: t0('a) => option('b);
let remove_min_elt: t0('a) => t0('b);
let merge: t0('a) => t0('a) => t0('a);
let concat: t0('a) => t0('a) => t0('a);
let cardinal: t0('a) => int;
let elements_aux: list('a) => t0('b) => list('a);
let elements: t0('a) => list('a);
let empty: t0('a);
let is_empty: t0('a) => bool;
let of_sorted_list: list('a) => t0('a);
type t1('a) = pri t0('a) =
  1. | Empty
  2. | Leaf('a)
  3. | Node of {
    1. h: int,
    2. v: 'a,
    3. l: t0('a),
    4. r: t0('a),
    }
;
module Make: (Ord: OrderedType) => S with type elt = Ord.t;