let create: ?random:bool => int => t('a);
let clear: t('a) => unit;
let reset: t('a) => unit;
let copy: t('a) => t('a);
let add: t('a) => key => 'a => unit;
let remove: t('a) => key => unit;
let find: t('a) => key => 'a;
let find_opt: t('a) => key => option('a);
let find_all: t('a) => key => list('a);
let replace: t('a) => key => 'a => unit;
let mem: t('a) => key => bool;
let iter: (key => 'a => unit) => t('a) => unit;
let filter_map_inplace: (key => 'a => option('a)) => t('a) => unit;
let fold: (key => 'a => 'acc => 'acc) => t('a) => 'acc => 'acc;
let length: t('a) => int;
let to_seq_values: t('a) => Seq.t('a);
let add_seq: t('a) => Seq.t((key, 'a)) => unit;
let replace_seq: t('a) => Seq.t((key, 'a)) => unit;