module type Table = sig
.. end
Hashcons tables
type
key
type of objects in the table
type
t
type of the table
val create : int -> t
create n
creates a table with at least n
cells.
val clear : t -> unit
clear tab
removes all entries from the table tab
.
val hashcons : t ->
key -> key BatHashcons.hobj
hashcons tab k
returns either k
, adding it to the table
tab
as a side effect, or if k
is already in the table then
it returns the hashed object corresponding to that entry.
Raises Failure
if number of objects with the same hash reaches system limit of array size
val iter : (key BatHashcons.hobj -> unit) ->
t -> unit
iter f tab
applies f
to every live hashed object in the
table tab
.
val fold : (key BatHashcons.hobj -> 'a -> 'a) ->
t -> 'a -> 'a
fold f tab x0
folds f
across every live hashed object in
the table tab
, starting with value x0
val count : t -> int
count tab
returns a count of how many live objects are in
tab
. This can decrease whenever the GC runs, even during
execution, so consider the returned value as an upper-bound.