sig type (!'a, !'b) t val create : ?random:bool -> int -> ('a, 'b) Hashtbl.t val clear : ('a, 'b) Hashtbl.t -> unit val reset : ('a, 'b) Hashtbl.t -> unit val copy : ('a, 'b) Hashtbl.t -> ('a, 'b) Hashtbl.t val add : ('a, 'b) Hashtbl.t ->'a ->'b -> unit val find : ('a, 'b) Hashtbl.t ->'a ->'b val find_opt : ('a, 'b) Hashtbl.t ->'a ->'b option val find_all : ('a, 'b) Hashtbl.t ->'a ->'b list val mem : ('a, 'b) Hashtbl.t ->'a -> bool val remove : ('a, 'b) Hashtbl.t ->'a -> unit val find_and_remove : ('a, 'b) Hashtbl.t ->'a ->'b option val replace : ('a, 'b) Hashtbl.t ->'a ->'b -> unit val find_and_replace : ('a, 'b) Hashtbl.t ->'a ->'b ->'b option val iter : ('a ->'b -> unit) -> ('a, 'b) Hashtbl.t -> unit val filter_map_inplace :
('a ->'b ->'b option) -> ('a, 'b) Hashtbl.t -> unit val fold : ('a ->'b ->'acc ->'acc) -> ('a, 'b) Hashtbl.t ->'acc ->'acc val length : ('a, 'b) Hashtbl.t -> int val randomize : unit -> unit val is_randomized : unit -> bool val rebuild : ?random:bool -> ('a, 'b) Hashtbl.t -> ('a, 'b) Hashtbl.t type statistics = {
num_bindings : int;
num_buckets : int;
max_bucket_length : int;
bucket_histogram : int array;
} val stats : ('a, 'b) Hashtbl.t ->Hashtbl.statistics val to_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) Stdlib.Seq.t val to_seq_keys : ('a, 'b) Hashtbl.t ->'a Stdlib.Seq.t val to_seq_values : ('a, 'b) Hashtbl.t ->'b Stdlib.Seq.t val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) Stdlib.Seq.t -> unit val replace_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) Stdlib.Seq.t -> unit val of_seq : ('a * 'b) Stdlib.Seq.t -> ('a, 'b) Hashtbl.t moduletypeHashedType = sig type t val equal : Hashtbl.HashedType.t ->Hashtbl.HashedType.t -> bool val hash : Hashtbl.HashedType.t -> int end moduletypeS = sig type key type !'a t val create : int ->'a Hashtbl.S.t val clear : 'a Hashtbl.S.t -> unit val reset : 'a Hashtbl.S.t -> unit val copy : 'a Hashtbl.S.t ->'a Hashtbl.S.t val add : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a -> unit val remove : 'a Hashtbl.S.t ->Hashtbl.S.key -> unit val find_and_remove : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a option val find : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a val find_opt : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a option val find_all : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a list val replace : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a -> unit val find_and_replace : 'a Hashtbl.S.t ->Hashtbl.S.key ->'a ->'a option val mem : 'a Hashtbl.S.t ->Hashtbl.S.key -> bool val iter : (Hashtbl.S.key ->'a -> unit) ->'a Hashtbl.S.t -> unit val filter_map_inplace :
(Hashtbl.S.key ->'a ->'a option) ->'a Hashtbl.S.t -> unit val fold :
(Hashtbl.S.key ->'a ->'acc ->'acc) -> 'a Hashtbl.S.t ->'acc ->'acc val length : 'a Hashtbl.S.t -> int val stats : 'a Hashtbl.S.t ->Hashtbl.statistics val to_seq : 'a Hashtbl.S.t -> (Hashtbl.S.key * 'a) Stdlib.Seq.t val to_seq_keys : 'a Hashtbl.S.t ->Hashtbl.S.key Stdlib.Seq.t val to_seq_values : 'a Hashtbl.S.t ->'a Stdlib.Seq.t val add_seq : 'a Hashtbl.S.t -> (Hashtbl.S.key * 'a) Stdlib.Seq.t -> unit val replace_seq : 'a Hashtbl.S.t -> (Hashtbl.S.key * 'a) Stdlib.Seq.t -> unit val of_seq : (Hashtbl.S.key * 'a) Stdlib.Seq.t ->'a Hashtbl.S.t end moduleMake :
(H : HashedType) -> sig type key = H.t type !'a t val create : int ->'a t val clear : 'a t -> unit val reset : 'a t -> unit val copy : 'a t ->'a t val add : 'a t -> key ->'a -> unit val remove : 'a t -> key -> unit val find_and_remove : 'a t -> key ->'a option val find : 'a t -> key ->'a val find_opt : 'a t -> key ->'a option val find_all : 'a t -> key ->'a list val replace : 'a t -> key ->'a -> unit val find_and_replace : 'a t -> key ->'a ->'a option val mem : 'a t -> key -> bool val iter : (key ->'a -> unit) ->'a t -> unit val filter_map_inplace : (key ->'a ->'a option) ->'a t -> unit val fold : (key ->'a ->'acc ->'acc) ->'a t ->'acc ->'acc val length : 'a t -> int val stats : 'a t -> statistics val to_seq : 'a t -> (key * 'a) Seq.t val to_seq_keys : 'a t -> key Seq.t val to_seq_values : 'a t ->'a Seq.t val add_seq : 'a t -> (key * 'a) Seq.t -> unit val replace_seq : 'a t -> (key * 'a) Seq.t -> unit val of_seq : (key * 'a) Seq.t ->'a t end moduletypeSeededHashedType = sig type t val equal : Hashtbl.SeededHashedType.t ->Hashtbl.SeededHashedType.t -> bool val seeded_hash : int ->Hashtbl.SeededHashedType.t -> int end moduletypeSeededS = sig type key type !'a t val create : ?random:bool -> int ->'a Hashtbl.SeededS.t val clear : 'a Hashtbl.SeededS.t -> unit val reset : 'a Hashtbl.SeededS.t -> unit val copy : 'a Hashtbl.SeededS.t ->'a Hashtbl.SeededS.t val add : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a -> unit val remove : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key -> unit val find_and_remove : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a option val find : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a val find_opt : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a option val find_all : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a list val replace : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a -> unit val find_and_replace : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key ->'a ->'a option val mem : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key -> bool val iter :
(Hashtbl.SeededS.key ->'a -> unit) ->'a Hashtbl.SeededS.t -> unit val filter_map_inplace :
(Hashtbl.SeededS.key ->'a ->'a option) -> 'a Hashtbl.SeededS.t -> unit val fold :
(Hashtbl.SeededS.key ->'a ->'acc ->'acc) -> 'a Hashtbl.SeededS.t ->'acc ->'acc val length : 'a Hashtbl.SeededS.t -> int val stats : 'a Hashtbl.SeededS.t ->Hashtbl.statistics val to_seq : 'a Hashtbl.SeededS.t -> (Hashtbl.SeededS.key * 'a) Stdlib.Seq.t val to_seq_keys : 'a Hashtbl.SeededS.t ->Hashtbl.SeededS.key Stdlib.Seq.t val to_seq_values : 'a Hashtbl.SeededS.t ->'a Stdlib.Seq.t val add_seq : 'a Hashtbl.SeededS.t ->
(Hashtbl.SeededS.key * 'a) Stdlib.Seq.t -> unit val replace_seq : 'a Hashtbl.SeededS.t ->
(Hashtbl.SeededS.key * 'a) Stdlib.Seq.t -> unit val of_seq :
(Hashtbl.SeededS.key * 'a) Stdlib.Seq.t ->'a Hashtbl.SeededS.t end moduleMakeSeeded :
(H : SeededHashedType) -> sig type key = H.t type !'a t val create : ?random:bool -> int ->'a t val clear : 'a t -> unit val reset : 'a t -> unit val copy : 'a t ->'a t val add : 'a t -> key ->'a -> unit val remove : 'a t -> key -> unit val find_and_remove : 'a t -> key ->'a option val find : 'a t -> key ->'a val find_opt : 'a t -> key ->'a option val find_all : 'a t -> key ->'a list val replace : 'a t -> key ->'a -> unit val find_and_replace : 'a t -> key ->'a ->'a option val mem : 'a t -> key -> bool val iter : (key ->'a -> unit) ->'a t -> unit val filter_map_inplace : (key ->'a ->'a option) ->'a t -> unit val fold : (key ->'a ->'acc ->'acc) ->'a t ->'acc ->'acc val length : 'a t -> int val stats : 'a t -> statistics val to_seq : 'a t -> (key * 'a) Seq.t val to_seq_keys : 'a t -> key Seq.t val to_seq_values : 'a t ->'a Seq.t val add_seq : 'a t -> (key * 'a) Seq.t -> unit val replace_seq : 'a t -> (key * 'a) Seq.t -> unit val of_seq : (key * 'a) Seq.t ->'a t end val hash : 'a -> int val seeded_hash : int ->'a -> int val hash_param : int -> int ->'a -> int val seeded_hash_param : int -> int -> int ->'a -> int end