module GenHashTable:sig..end
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:sigtypetkeys
type'acontainercontains keys and the associated data
val hash :int -> t -> intsame as
Hashtbl.SeededHashedTypeval equal :'a container ->
t -> Ephemeron.GenHashTable.equalequality predicate used to compare a key with the one in a container. Can return
EDeadif the keys in the container are deadval create :t ->
'a -> 'a container
create key datacreates a container from some initials keys and one dataval get_key :'a container ->
t option
get_key contreturns the keys if they are all aliveval get_data :'a container -> 'a option
get_data contreturns the data if it is aliveval set_key_data :'a container ->
t -> 'a -> unit
set_key_data contmodifies the key and dataval check_key :'a container -> bool
check_key contchecks if all the keys contained in the data are aliveend) ->Ephemeron.SeededSwith type key = H.t
Functor building an implementation of an hash table that use the container for keeping the information given