# Module ExtHashtbl.Hashtbl

    module Hashtbl: sig .. end

    type ('a, 'b) t = ('a, 'b) Stdlib.Hashtbl.t

The type of a hashtable.

New Functions

    val exists : ('a, 'b) t -> 'a -> bool

`exists h k` returns true is at least one item with key `k` is found in the hashtable.

    val keys : ('a, 'b) t -> 'a Enum.t

Return an enumeration of all the keys of a hashtable. If the key is in the Hashtable multiple times, all occurrences will be returned.

    val values : ('a, 'b) t -> 'b Enum.t

Return an enumeration of all the values of a hashtable.

    val enum : ('a, 'b) t -> ('a * 'b) Enum.t

Return an enumeration of (key,value) pairs of a hashtable.

    val of_enum : ('a * 'b) Enum.t -> ('a, 'b) t

Create a hashtable from a (key,value) enumeration.

    val find_default : ('a, 'b) t -> 'a -> 'b -> 'b

Find a binding for the key, and return a default value if not found

    val find_opt : ('a, 'b) Stdlib.Hashtbl.t -> 'a -> 'b option

Find a binding for the key, or return `None` if no value is found

    val find_option : ('a, 'b) Stdlib.Hashtbl.t -> 'a -> 'b option

compatibility, use `find_opt`

    val remove_all : ('a, 'b) t -> 'a -> unit

Remove all bindings for the given key

    val map : ('b -> 'c) -> ('a, 'b) t -> ('a, 'c) t

`map f x` creates a new hashtable with the same keys as `x`, but with the function `f` applied to all the values

    val length : ('a, 'b) t -> int

Return the number of elements inserted into the Hashtbl (including duplicates)

    val reset : ('a, 'b) t -> unit

    val randomize : unit -> unit

    type statistics = Stdlib.Hashtbl.statistics = {

`` | `num_bindings : `int`;`
`` | `num_buckets : `int`;`
`` | `max_bucket_length : `int`;`
`` | `bucket_histogram : `int array`;`

}

    val stats : ('a, 'b) t -> statistics

    val seeded_hash_param : int -> int -> int -> 'a -> int

    val seeded_hash : int -> 'a -> int

    val is_randomized : unit -> bool

    val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit

Older Functions

Please refer to the Ocaml Manual for documentation of these functions.

    val create : ?random:bool -> int -> ('a, 'b) t

- Before 4.00.0 `random` is ignored

    val clear : ('a, 'b) t -> unit

    val add : ('a, 'b) t -> 'a -> 'b -> unit

    val copy : ('a, 'b) t -> ('a, 'b) t

    val find : ('a, 'b) t -> 'a -> 'b

    val find_all : ('a, 'b) t -> 'a -> 'b list

    val mem : ('a, 'b) t -> 'a -> bool

    val remove : ('a, 'b) t -> 'a -> unit

    val replace : ('a, 'b) t -> 'a -> 'b -> unit

    val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit

    val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c

    val hash : 'a -> int

    val hash_param : int -> int -> 'a -> int

    val to_seq : ('a, 'b) t -> ('a * 'b) Stdlib.Seq.t

`*_seq` functions were introduced in OCaml 4.07.0, and are _not_ implemented in extlib for older OCaml versions

    val to_seq_keys : ('a, 'b) t -> 'a Stdlib.Seq.t

    val to_seq_values : ('a, 'b) t -> 'b Stdlib.Seq.t

    val add_seq : ('a, 'b) t -> ('a * 'b) Stdlib.Seq.t -> unit

    val replace_seq : ('a, 'b) t -> ('a * 'b) Stdlib.Seq.t -> unit

    val of_seq : ('a * 'b) Stdlib.Seq.t -> ('a, 'b) t

Functor interface forwards directly to stdlib implementation (i.e. no enum functions)

    module type HashedType = Stdlib.Hashtbl.HashedType

    module type S = Stdlib.Hashtbl.S

    module Make: Stdlib.Hashtbl.Make

    module type SeededHashedType = Stdlib.Hashtbl.SeededHashedType

    module type SeededS = Stdlib.Hashtbl.SeededS

    module MakeSeeded: Stdlib.Hashtbl.MakeSeeded