Fully encapsulated monad transformers with queuelike functionality.
Contains several implementations of data structures implementing a single-in, single-out paradigm, and implements monad transformers for their safe use. The monad transformer part of the library includes tools to fully encapsulate single-threaded use of a priority queue in a monad, including an array-based heap implementation. In general, the purely functional queue types can be ordered in increasing order of speed on generic insertion/deletion operations as follows: Stack
, Queue
, PQueue
, IntQueue
, SkewQueue
, FQueue
, Heap
. (PQueue
, IntQueue
, and SkewQueue
are all very nearly the same speed.) Work is in progress on a van Emde Boas or y-fast priority queue implementation, which provides sublogarithmic functionality for all operations. This package is now deprecated. Use queuelike instead.