Ephemeron.Kn.Make(3) OCaml library Ephemeron.Kn.Make(3)

# [NAME](#NAME)

Ephemeron.Kn.Make - Functor building an implementation of a weak hash table

# [Module](#Module)

Module Ephemeron.Kn.Make

# [Documentation](#Documentation)

Module **Make**  
: **(H : Hashtbl.HashedType) -&gt; sig end**

Functor building an implementation of a weak hash table

**Parameters:**

"H"

**Stdlib.Hashtbl.HashedType**

Propose the same interface as usual hash table. However since the bindings are weak, even if **mem h k** is true, a subsequent **find h k** may raise **Not\_found** because the garbage collector can run between the two.

*type key*

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

*val create* : **int -&gt; 'a t**

*val clear* : **'a t -&gt; unit**

*val reset* : **'a t -&gt; unit**

*val copy* : **'a t -&gt; 'a t**

*val add* : **'a t -&gt; key -&gt; 'a -&gt; unit**

*val remove* : **'a t -&gt; key -&gt; unit**

*val find* : **'a t -&gt; key -&gt; 'a**

*val find\_opt* : **'a t -&gt; key -&gt; 'a option**

*val find\_all* : **'a t -&gt; key -&gt; 'a list**

*val replace* : **'a t -&gt; key -&gt; 'a -&gt; unit**

*val mem* : **'a t -&gt; key -&gt; bool**

*val length* : **'a t -&gt; int**

*val stats* : **'a t -&gt; Hashtbl.statistics**

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

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

*val of\_seq* : **(key * 'a) Seq.t -&gt; 'a t**

*val clean* : **'a t -&gt; unit**

remove all dead bindings. Done automatically during automatic resizing.

*val stats\_alive* : **'a t -&gt; Hashtbl.statistics**

same as **Hashtbl.SeededS.stats** but only count the alive bindings

2026-09-04 OCamldoc

---

Document: Ephemeron.Kn.Make(3o) from ocaml 5.5.1-r0 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
