Module Ephemeron.GenHashTable
module GenHashTable: sig .. end
Hash tables on generic containers with notion of death and aliveness.
Define a hash table on generic containers which have a notion of "death" and aliveness. If a binding is dead the hash table can automatically remove it.
type equal =
|
| ETrue
| |||
|
| EFalse
| |||
|
| EDead
| (* |
the container is dead |
*) |
module MakeSeeded: functor (H : sig type t keys type 'a container contains keys and the associated data val hash : int -> t -> int same as Hashtbl.SeededHashedType val equal : 'a container -> t -> Ephemeron.GenHashTable.equal equality predicate used to compare a key with the one in a container. Can return EDead if the keys in the container are dead val create : t -> 'a -> 'a container create key data creates a container from some initials keys and one data val get_key : 'a container -> t option get_key cont returns the keys if they are all alive val get_data : 'a container -> 'a option get_data cont returns the data if it is alive val set_key_data : 'a container -> t -> 'a -> unit set_key_data cont modifies the key and data val check_key : 'a container -> bool check_key cont checks if all the keys contained in the data are alive end) -> Ephemeron.SeededS with type key = H.t
Functor building an implementation of an hash table that use the container for keeping the information given