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 -> intsame as Hashtbl.SeededHashedType
val equal : 'a container ->
t -> Ephemeron.GenHashTable.equalequality 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 containercreate key data creates a container from
some initials keys and one data
val get_key : 'a container ->
t optionget_key cont returns the keys if they are all alive
val get_data : 'a container -> 'a optionget_data cont returns the data if it is alive
val set_key_data : 'a container ->
t -> 'a -> unitset_key_data cont modifies the key and data
val check_key : 'a container -> boolcheck_key cont checks if all the keys contained in the data
are alive
end) ->Ephemeron.SeededSwith type key = H.t
Functor building an implementation of an hash table that use the container for keeping the information given