packages feed

monad-schedule-1.6: monad-schedule.cabal

cabal-version: 2.4
name: monad-schedule
version: 1.6
license: MIT
license-file: LICENSE
author: Manuel Bärenz
maintainer: programming@manuelbaerenz.de
synopsis: A new, simple, composable concurrency abstraction.
description:
  A monad @m@ is said to allow scheduling if you can pass a number of actions @m a@ to it,
  and those can be executed at the same time concurrently.
  You can observe the result of the actions after some time:
  Some actions will complete first, and the results of these are returned then as a list @'NonEmpty' a@.
  Other actions are still running, and for these you will receive continuations of type @m a@,
  which you can further run or schedule to completion as you like.

category: Concurrency
extra-doc-files: CHANGELOG.md

source-repository head
  type: git
  location: https://github.com/turion/rhine

common deps
  build-depends:
    base >=4.16.0 && <4.22,
    base-compat >=0.13 && <0.15,
    free >=5.1 && <5.3,
    operational ^>=0.2.4,
    stm ^>=2.5,
    time-domain ^>=1.6,
    transformers >=0.5 && <0.7,

  if flag(dev)
    ghc-options: -Werror
  ghc-options:
    -W

library
  import: deps
  exposed-modules:
    Control.Monad.Schedule.Class
    Control.Monad.Schedule.FreeAsync
    Control.Monad.Schedule.OSThreadPool
    Control.Monad.Schedule.RoundRobin
    Control.Monad.Schedule.Sequence
    Control.Monad.Schedule.Trans
    Control.Monad.Schedule.Yield

  hs-source-dirs: src
  default-language: Haskell2010

test-suite test
  import: deps
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
    FreeAsync
    Trans
    Yield

  hs-source-dirs: test
  build-depends:
    HUnit ^>=1.6,
    QuickCheck >=2.14 && <2.16,
    generic-arbitrary ^>=1.0,
    monad-schedule,
    test-framework ^>=0.8,
    test-framework-hunit ^>=0.3,
    test-framework-quickcheck2 ^>=0.3,
    time >=1.9,

  default-language: Haskell2010
  ghc-options: -threaded

flag dev
  description: Enable warnings as errors. Active on ci.
  default: False
  manual: True