Module type Flow_map.S

type key;
type t(+'a);
let empty: t('a);
let is_empty: t('a) => bool;
let mem: key => t('a) => bool;
let add: key => 'a => t('a) => t('a);
let update: key => (option('a) => option('a)) => t('a) => t('a);
let adjust: key => (option('a) => 'a) => t('a) => t('a);
let singleton: key => 'a => t('a);
let remove: key => t('a) => t('a);
let merge: (key => option('a) => option('b) => option('c)) => t('a) => t('b) => t('c);
let union: (key => 'a => 'a => option('a)) => t('a) => t('a) => t('a);
let compare: ('a => 'a => int) => t('a) => t('a) => int;
let equal: ('a => 'a => bool) => t('a) => t('a) => bool;
let iter: (key => 'a => unit) => t('a) => unit;
let fold: (key => 'a => 'b => 'b) => t('a) => 'b => 'b;
let for_all: (key => 'a => bool) => t('a) => bool;
let exists: (key => 'a => bool) => t('a) => bool;
let filter: (key => 'a => bool) => t('a) => t('a);
let partition: (key => 'a => bool) => t('a) => (t('a), t('a));
let cardinal: t('a) => int;
let bindings: t('a) => list((key, 'a));
let min_binding: t('a) => (key, 'a);
let min_binding_opt: t('a) => option((key, 'a));
let max_binding: t('a) => (key, 'a);
let max_binding_opt: t('a) => option((key, 'a));
let keys: t('a) => list(key);
let ordered_keys: t('a) => list(key);
let ident_map_key: ?combine:('a => 'a => 'a) => (key => key) => t('a) => t('a);
let choose: t('a) => (key, 'a);
let choose_opt: t('a) => option((key, 'a));
let split: key => t('a) => (t('a), option('a), t('a));
let find: key => t('a) => 'a;
let find_opt: key => t('a) => option('a);
let map: ('a => 'b) => t('a) => t('b);
let mapi: (key => 'a => 'b) => t('a) => t('b);
let of_increasing_iterator_unchecked: (unit => (key, 'a)) => int => t('a);
let of_sorted_array_unchecked: array((key, 'a)) => t('a);