module Make:
(H1: Hashtbl.HashedType, H2: Hashtbl.HashedType) =>
Ephemeron.S with type key = (H1.t, H2.t);
Functor building an implementation of a weak hash table
Parameters: |
|
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.
Moreover, the table shouldn't be modified during a call to iter
.
Use filter_map_inplace
in this case.
include Hashtbl.S;
let clean: t('a) => unit;
remove all dead bindings. Done automatically during automatic resizing.
let stats_alive: t('a) => Hashtbl.statistics;
same as Hashtbl.SeededS.stats
but only count the alive bindings