-- Initial monad-conc.cabal generated by cabal init. For further -- documentation, see http://haskell.org/cabal/users-guide/ name: dejafu version: 0.1.0.0 synopsis: Overloadable primitives for testable, potentially non-deterministic, concurrency. description: /[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 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 for more details. homepage: https://github.com/barrucadu/dejafu license: MIT license-file: LICENSE author: Michael Walker maintainer: mike@barrucadu.co.uk -- copyright: category: Concurrency build-type: Simple -- extra-source-files: cabal-version: >=1.10 source-repository head type: git location: https://github.com/barrucadu/dejafu.git source-repository this type: git location: https://github.com/barrucadu/dejafu.git tag: 0.1.0.0 library exposed-modules: Control.Monad.Conc.Class , Control.Monad.STM.Class , Control.Concurrent.CVar , Control.Concurrent.CVar.Strict , Control.Concurrent.STM.CTVar , Control.Concurrent.STM.CTMVar , Test.DejaFu , Test.DejaFu.Deterministic , Test.DejaFu.Deterministic.IO , Test.DejaFu.Deterministic.Schedule , Test.DejaFu.SCT , Test.DejaFu.STM other-modules: Test.DejaFu.Deterministic.Internal , Test.DejaFu.Deterministic.Internal.Common , Test.DejaFu.Deterministic.Internal.CVar , Test.DejaFu.Deterministic.Internal.Threading , Test.DejaFu.Internal , Test.DejaFu.SCT.Internal , Test.DejaFu.STM.Internal , Data.List.Extra -- other-extensions: build-depends: base >=4.5 && <5 , containers , deepseq , exceptions >=0.7 , monad-loops , mtl , random , stm , transformers -- hs-source-dirs: default-language: Haskell2010 ghc-options: -Wall test-suite tests hs-source-dirs: tests type: exitcode-stdio-1.0 main-is: Tests.hs build-depends: dejafu, base default-language: Haskell2010