Module Belt_internalBuckets

type bucket('a, 'b) = {
  1. mutable key: 'a,
  2. mutable value: 'b,
  3. mutable next: C.opt(bucket('a, 'b)),
};
and t('hash, 'eq, 'a, 'b) = C.container('hash, 'eq, bucket('a, 'b));
let copy: t('hash, 'eq, 'a, 'b) => t('hash, 'eq, 'a, 'b);
let forEachU: t(_, _, 'a, 'b) => Js.Fn.arity2(('a => 'b => 'c)) => unit;
let forEach: t(_, _, 'a, 'b) => ('a => 'b => 'c) => unit;
let reduceU: t(_, _, 'a, 'b) => 'c => Js.Fn.arity3(('c => 'a => 'b => 'c)) => 'c;
let reduce: t(_, _, 'a, 'b) => 'c => ('c => 'a => 'b => 'c) => 'c;
let logStats: t(_, _, _, _) => unit;
let keepMapInPlaceU: t(_, _, 'a, 'b) => Js.Fn.arity2(('a => 'b => option('b))) => unit;
let keepMapInPlace: t(_, _, 'a, 'b) => ('a => 'b => option('b)) => unit;
let fillArray: int => array(('a, 'b)) => bucket('a, 'b) => int;
let keysToArray: t(_, _, 'a, _) => array('a);
let valuesToArray: t(_, _, _, 'b) => array('b);
let toArray: t(_, _, 'a, 'b) => array(('a, 'b));
let getBucketHistogram: t(_, _, _, _) => array(int);