mirror of
https://github.com/polysemy-research/polysemy.git
synced 2024-12-03 13:05:09 +03:00
2654d35066
This PR provides a single function withLowerToIO, which runs a desired Sem r effect all the way down to IO, without needing to know the natural transformation beforehand. It does it by running the desired code in a new thread, and shipping all of the unhandled effects back to the main thread. The main thread turns into an event loop for the duration of the withLowerToIO block.
110 lines
2.4 KiB
YAML
110 lines
2.4 KiB
YAML
name: polysemy
|
|
version: 0.4.0.0
|
|
github: "isovector/polysemy"
|
|
license: BSD3
|
|
author: "Sandy Maguire"
|
|
maintainer: "sandy@sandymaguire.me"
|
|
copyright: "2019 Sandy Maguire"
|
|
|
|
extra-source-files:
|
|
- README.md
|
|
- ChangeLog.md
|
|
|
|
synopsis: Higher-order, low-boilerplate, zero-cost free monads.
|
|
category: Language
|
|
|
|
description: Please see the README on GitHub at <https://github.com/isovector/polysemy#readme>
|
|
|
|
dependencies:
|
|
- base >= 4.9 && < 5
|
|
- containers >= 0.5 && < 0.7
|
|
- mtl >= 2.2.2 && < 3
|
|
- syb >= 0.7 && < 0.8
|
|
- template-haskell >= 2.12.0.0 && < 3
|
|
- th-abstraction >= 0.3.1.0 && < 0.4
|
|
- transformers >= 0.5.2.0 && < 0.6
|
|
- first-class-families >= 0.5.0.0 && < 0.6
|
|
- unagi-chan >= 0.4.0.0 && < 0.5
|
|
- async >= 2.2 && < 3
|
|
|
|
default-extensions:
|
|
- DataKinds
|
|
- DeriveFunctor
|
|
- FlexibleContexts
|
|
- GADTs
|
|
- LambdaCase
|
|
- PolyKinds
|
|
- RankNTypes
|
|
- ScopedTypeVariables
|
|
- StandaloneDeriving
|
|
- TypeApplications
|
|
- TypeOperators
|
|
- TypeFamilies
|
|
- UnicodeSyntax
|
|
|
|
when:
|
|
- condition: impl(ghc < 8.6)
|
|
default-extensions:
|
|
- MonadFailDesugaring
|
|
- TypeInType
|
|
|
|
flags:
|
|
dump-core:
|
|
description: Dump HTML for the core generated by GHC during compilation
|
|
default: False
|
|
manual: True
|
|
error-messages:
|
|
description: Provide custom error messages
|
|
default: True
|
|
manual: True
|
|
|
|
library:
|
|
ghc-options: -Wall
|
|
source-dirs: src
|
|
other-modules: Polysemy.Internal.PluginLookup
|
|
|
|
when:
|
|
- condition: flag(dump-core)
|
|
dependencies:
|
|
- dump-core
|
|
ghc-options:
|
|
- -fplugin=DumpCore
|
|
- -fplugin-opt DumpCore:core-html
|
|
|
|
- condition: impl(ghc < 8.2.2)
|
|
dependencies:
|
|
- unsupported-ghc-version > 1 && < 1
|
|
|
|
- condition: flag(error-messages)
|
|
then: {}
|
|
else:
|
|
cpp-options: -DNO_ERROR_MESSAGES
|
|
|
|
tests:
|
|
polysemy-test:
|
|
main: Main.hs
|
|
source-dirs: test
|
|
ghc-options:
|
|
- -threaded
|
|
- -rtsopts
|
|
- -with-rtsopts=-N
|
|
build-tools:
|
|
- hspec-discover >= 2.0
|
|
dependencies:
|
|
- polysemy
|
|
- inspection-testing >= 0.4.2 && < 0.5
|
|
- hspec >= 2.6.0 && < 3
|
|
- doctest >= 0.16.0.1 && < 0.17
|
|
|
|
benchmarks:
|
|
polysemy-bench:
|
|
source-dirs: bench
|
|
main: countDown.hs
|
|
dependencies:
|
|
- criterion
|
|
- free
|
|
- freer-simple
|
|
- mtl
|
|
- polysemy
|
|
|