Module Map_string

include Map_gen.S with type key = string;
type key = string;
type t(+'a);
let empty: t('a);
let compare_key: key => key => int;
let is_empty: t('a) => bool;
let mem: t('a) => key => bool;
let to_sorted_array: t('a) => array((key, 'a));
let to_sorted_array_with_f: t('a) => (key => 'a => 'b) => array('b);
let add: t('a) => key => 'a => t('a);
let adjust: t('a) => key => (option('a) => 'a) => t('a);
let singleton: key => 'a => t('a);
let remove: t('a) => key => t('a);
let disjoint_merge: t('a) => t('a) => (key => 'a => 'a => 'a) => t('a);
let disjoint_merge_exn: t('a) => t('a) => (key => 'a => 'a => exn) => t('a);
let iter: t('a) => (key => 'a => unit) => unit;
let fold: t('a) => 'b => (key => 'a => 'b => 'b) => 'b;
let for_all: t('a) => (key => 'a => bool) => bool;
let exists: t('a) => (key => 'a => bool) => bool;
let cardinal: t('a) => int;
let bindings: t('a) => list((key, 'a));
let keys: t('a) => list(key);
let find_exn: t('a) => key => 'a;
let find_opt: t('a) => key => option('a);
let find_default: t('a) => key => 'a => 'a;
let map: t('a) => ('a => 'b) => t('b);
let mapi: t('a) => (key => 'a => 'b) => t('b);
let of_list: list((key, 'a)) => t('a);
let of_array: array((key, 'a)) => t('a);
let add_list: list((key, 'b)) => t('b) => t('b);