---
name: "Hashtbl.Make"
section: "3o"
platform: "linux"
package: "ocaml"
version: "5.5.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Hashtbl.Make"
---

# Hashtbl.Make(3o)

Functor building an implementation of the hashtable structure.

## NAME

Hashtbl.Make - Functor building an implementation of the hashtable structure.

## Module

Module   Hashtbl.Make

## Documentation

Module **Make**\
  :  **(H : HashedType) -\> sig end**

Functor building an implementation of the hashtable structure. The functor  **Hashtbl.Make** returns a structure containing a type  **key** of keys and a type  **'a t** of hash tables associating data of type  **'a** to keys of type  **key** . The operations perform similarly to those of the generic interface, but use the hashing and equality functions specified in the functor argument  **H** instead of generic equality and hashing.  Since the hash function is not seeded, the  **create** operation of the result structure always returns non-randomized hash tables.

**Parameters:**

"H"

**Hashtbl.HashedType**

*type key*

*type* **!'a** *t*

*val create* :  **int -\> 'a t**

*val clear* :  **'a t -\> unit**

*val reset* :  **'a t -\> unit**

**Since** 4.00

*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**

**Since** 5.5

*val find* :  **'a t -\> key -\> 'a**

*val find\_opt* :  **'a t -\> key -\> 'a option**

**Since** 4.05

*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**

**Since** 5.5

*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**

**Since** 4.03

*val fold* :  **(key -\> 'a -\> 'acc -\> 'acc) -\> 'a t -\> 'acc -\> 'acc**

*val length* :  **'a t -\> int**

*val stats* :  **'a t -\> Hashtbl.statistics**

**Since** 4.00

*val to\_seq* :  **'a t -\> (key \* 'a) Seq.t**

**Since** 4.07

*val to\_seq\_keys* :  **'a t -\> key Seq.t**

**Since** 4.07

*val to\_seq\_values* :  **'a t -\> 'a Seq.t**

**Since** 4.07

*val add\_seq* :  **'a t -\> (key \* 'a) Seq.t -\> unit**

**Since** 4.07

*val replace\_seq* :  **'a t -\> (key \* 'a) Seq.t -\> unit**

**Since** 4.07

*val of\_seq* :  **(key \* 'a) Seq.t -\> 'a t**

**Since** 4.07
