Module Hash_set_gen

type bucket('a) =
  1. | Empty
  2. | Cons of {
    1. mutable key: 'a,
    2. mutable next: bucket('a),
    }
;
type t('a) = {
  1. mutable size: int,
  2. mutable data: array(bucket('a)),
  3. initial_size: int,
};
let create: int => t('a);
let clear: t('a) => unit;
let reset: t('a) => unit;
let length: t('a) => int;
let resize: (t('a) => 'b => int) => t('a) => unit;
let iter: t('a) => ('b => 'c) => unit;
let fold: t('a) => 'b => ('c => 'd => 'e) => 'f;
let to_list: t('a) => list('b);
let small_bucket_mem: ('a => 'b => bool) => 'c => bucket('d) => bool;
let remove_bucket: t('a) => int => 'b => prec:bucket('c) => bucket('d) => ('e => 'f => bool) => unit;
module type S = { ... };