Module Hash_gen

type ('a, 'b) bucket =
  1. | Empty
  2. | Cons of {
    1. mutable key : 'a;
    2. mutable data : 'b;
    3. mutable next : ('a, 'b) bucket;
    }
type ('a, 'b) t = {
  1. mutable size : int;
  2. mutable data : ('a, 'b) bucket array;
  3. initial_size : int;
}
val power_2_above : int -> int -> int
(power_2_above 16 63 = 64)
  (power_2_above 16 76 = 128)
val create : int -> ('a, 'b) t
val clear : ('a, 'b) t -> unit
val reset : ('a, 'b) t -> unit
val length : ('a, 'b) t -> int
val resize : (('a, 'b) t -> 'c -> int) -> ('a, 'b) t -> unit
val iter : ('a, 'b) t -> ('c -> 'd -> 'e) -> unit
val fold : ('a, 'b) t -> 'c -> ('d -> 'e -> 'f -> 'g) -> 'h
val to_list : ('a, 'b) t -> ('c -> 'd -> 'e) -> 'f list
val small_bucket_mem : ('a, 'b) bucket -> ('c -> 'd -> bool) -> 'e -> bool
val small_bucket_opt : ('a -> 'b -> bool) -> 'c -> ('d, 'e) bucket -> 'f option
val small_bucket_key_opt : ('a -> 'b -> bool) -> 'c -> ('d, 'e) bucket -> 'f option
val small_bucket_default : ('a -> 'b -> bool) -> 'c -> 'd -> ('e, 'f) bucket -> 'g
val remove_bucket : ('a, 'b) t -> int -> 'c -> prec:('d, 'e) bucket -> ('f, 'g) bucket -> ('h -> 'i -> bool) -> unit
val replace_bucket : 'a -> 'b -> ('c, 'd) bucket -> ('e -> 'f -> bool) -> bool
module type S = sig ... end