packages feed

monad-schedule-0.2: monad-schedule.cabal

cabal-version:   2.4
name:            monad-schedule
version:         0.2
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

tested-with:
  GHC == 9.2.5
  GHC == 9.4.5
  GHC == 9.6.2
  GHC == 9.8.1

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

common deps
  build-depends:
    , base          >=4.16.0 && <4.20.0
    , free          >=5.1 && < 5.3
    , stm           ^>=2.5
    , time-domain   ^>=0.1
    , transformers  >=0.5 && < 0.7
    , operational   ^>=0.2.4
  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
    , monad-schedule
    , QuickCheck                  >=2.14 && <2.16
    , test-framework              ^>=0.8
    , test-framework-hunit        ^>=0.3
    , test-framework-quickcheck2  ^>=0.3
    , generic-arbitrary           ^>=1.0
    , time                        >=1.9

  default-language: Haskell2010

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