e52927accc
Background: There exists a feature space for queues that extends between: * simple, single-ended, non-concurrent, bounded queues * double-ended, threadsafe, growable queues ... with important points inbetween (such as the queues used for work-stealing). This package includes an interface for Deques that allows the programmer to use a single API for all of the above, while using the type-system to select an efficient implementation given the requirements (using type families). This package also includes a simple reference implementation based on 'IORef' and "Data.Sequence". ok jasper@
20 lines
654 B
Plaintext
20 lines
654 B
Plaintext
An abstract interface to highly-parameterizable queues/deques.
|
|
|
|
Background: There exists a feature space for queues that extends
|
|
between:
|
|
|
|
* simple, single-ended, non-concurrent, bounded queues
|
|
|
|
* double-ended, threadsafe, growable queues
|
|
|
|
... with important points inbetween (such as
|
|
the queues used for work-stealing).
|
|
|
|
This package includes an interface for Deques that allows the
|
|
programmer to use a single API for all of the above, while using
|
|
the type-system to select an efficient implementation given the
|
|
requirements (using type families).
|
|
|
|
This package also includes a simple reference implementation based
|
|
on 'IORef' and "Data.Sequence".
|