Weak.SThe output signature of the functor Weak.Make.
The type of tables that contain elements of type data. Note that weak hash sets cannot be marshaled using Stdlib.output_value or the functions of the Marshal module.
val create : int -> tcreate n creates a new empty weak hash set, of initial size n. The table will grow as needed.
val clear : t -> unitRemove all elements from the table.
merge t x returns an instance of x found in t if any, or else adds x to t and return x.
add t x adds x to t. If there is already an instance of x in t, it is unspecified which one will be returned by subsequent calls to find and merge.
remove t x removes from t one instance of x. Does nothing if there is no instance of x in t.
find_opt t x returns an instance of x found in t or None if there is no such element.
find_all t x returns a list of all the instances of x found in t.
mem t x returns true if there is at least one instance of x in t, false otherwise.
iter f t calls f on each element of t, in some unspecified order. It is not specified what happens if f tries to change t itself.
fold f t init computes (f d1 (... (f dN init))) where d1 ... dN are the elements of t in some unspecified order. It is not specified what happens if f tries to change t itself.
val count : t -> intCount the number of elements in the table. count t gives the same result as fold (fun _ n -> n+1) t 0 but does not delay the deallocation of the dead elements.
val stats : t -> int * int * int * int * int * intReturn statistics on the table. The numbers are, in order: table length, number of entries, sum of bucket lengths, smallest bucket length, median bucket length, biggest bucket length.