dejafu: Overloadable primitives for testable, potentially non-deterministic, concurrency.
[Déjà Fu is] A martial art in which the user's limbs move in time as well as space, […] It is best described as "the feeling that you have been kicked in the head this way before" -- Terry Pratchett, Thief of Time
Concurrency is nice, deadlocks and race conditions not so much. The
Par
monad family, as defined in
abstract-par
provides deterministic parallelism, but sometimes we can tolerate a
bit of nondeterminism.
This package provides a class of monads for potentially nondeterministic concurrency, with an interface in the spirit of GHC's normal concurrency abstraction.
MonadConc
with IO
:
The intention of the MonadConc
class is to provide concurrency
where any apparent nondeterminism arises purely from the scheduling
behaviour. To put it another way, a given computation, parametrised
with a fixed set of scheduling decisions, is deterministic. This
assumption is used by the testing functionality provided by
Test.DejaFu.
Whilst this assumption may not hold in general when IO
is
involved, you should strive to produce test cases where it does.
See the README for more details.
Downloads
- dejafu-0.1.0.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates