module Map: Identifiable.Map with module T := T;
module T: Map.OrderedType;
include Map.S;
let of_list: list((key, 'a)) => t('a);
let disjoint_union:
(
~eq: ('a, 'a) => bool=?,
~print: (Format.formatter, 'a) => unit=?,
t('a),
t('a)
) =>
t('a);
disjoint_union m1 m2
contains all bindings from m1
and
m2
. If some binding is present in both and the associated
value is not equal, a Fatal_error is raised
let union_right: (t('a), t('a)) => t('a);
union_right m1 m2
contains all bindings from m1
and m2
. If
some binding is present in both, the one from m2
is taken
let union_left: (t('a), t('a)) => t('a);
union_left m1 m2 = union_right m2 m1
let union_merge: (('a, 'a) => 'a, t('a), t('a)) => t('a);
let rename: (t(key), key) => key;
let map_keys: (key => key, t('a)) => t('a);
let keys: t('a) => Stdlib.Set.Make(T).t;
let data: t('a) => list('a);
let of_set: (key => 'a, Stdlib.Set.Make(T).t) => t('a);
let transpose_keys_and_data: t(key) => t(key);
let transpose_keys_and_data_set: t(key) => t(Stdlib.Set.Make(T).t);
let print: ((Format.formatter, 'a) => unit, Format.formatter, t('a)) => unit;