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 S : sig ... end