Module type Hash_gen.S

type key
type 'a t
val create : int -> 'a t
val clear : 'a t -> unit
val reset : 'a t -> unit
val add : 'a t -> key -> 'a -> unit
val add_or_update : 'a t -> key -> update:('a -> 'a) -> 'a -> unit
val remove : 'a t -> key -> unit
val find_exn : 'a t -> key -> 'a
val find_all : 'a t -> key -> 'a list
val find_opt : 'a t -> key -> 'a option
val find_key_opt : 'a t -> key -> key option

return the key found in the hashtbl. Use case: when you find the key existed in hashtbl, you want to use the one stored in the hashtbl. (they are semantically equivlanent, but may have other information different)

val find_default : 'a t -> key -> 'a -> 'a
val replace : 'a t -> key -> 'a -> unit
val mem : 'a t -> key -> bool
val iter : 'a t -> (key -> 'a -> unit) -> unit
val fold : 'a t -> 'b -> (key -> 'a -> 'b -> 'b) -> 'b
val length : 'a t -> int
val to_list : 'a t -> (key -> 'a -> 'c) -> 'c list
val of_list2 : key list -> 'a list -> 'a t