Module Ordered_hash_map_gen

Hash based datastrucure which does not support remove, so that the adding order is strict and continous

module type S = { ... };
type bucket('a, 'b) =
  1. | Empty
  2. | Cons of {
    1. key: 'a,
    2. ord: int,
    3. data: 'b,
    4. next: bucket('a, 'b),
    }
;
type t('a, 'b) = {
  1. mutable size: int,
  2. mutable data: array(bucket('a, 'b)),
  3. initial_size: int,
};
let create: int => t('a, 'b);
let clear: t('a, 'b) => unit;
let reset: t('a, 'b) => unit;
let length: t('a, 'b) => int;
let resize: (t('a, 'b) => 'c => int) => t('a, 'b) => unit;
let iter: t('a, 'b) => ('c => 'd => int => 'e) => unit;
let choose: t('a, 'b) => 'c;
let to_sorted_array: t('a, 'b) => array('c);
let fold: t('a, 'b) => 'c => ('d => 'e => int => 'f => 'g) => 'h;
let elements: t('a, 'b) => list('c);
let bucket_length: int => bucket('a, 'b) => int;