Module Core_kernel.Hash_queue

A hash-queue is a combination of a queue and a hashtable that supports constant-time lookup and removal of queue elements in addition to the usual queue operations (enqueue, dequeue). The queue elements are key-value pairs. The hashtable has one entry for each element of the queue.

Calls to functions that would modify a hash-queue (e.g. enqueue, dequeue, remove, replace) detect if a client is in the middle of iterating over the queue (e.g., iter, fold, for_all, exists) and if so, raise an exception.

module type Key = Core_kernel__.Hash_queue_intf.Key
module type S = Core_kernel__.Hash_queue_intf.S
module Make_with_table : functor (Key : Key) -> functor (Table : Hashtbl_intf.S_plain with type key = Key.t) -> S with module Key = Key
module Make : functor (Key : Key) -> S with module Key = Key