mirror of
https://github.com/polysemy-research/polysemy.git
synced 2024-11-23 09:15:22 +03:00
133 lines
3.1 KiB
YAML
133 lines
3.1 KiB
YAML
name: polysemy
|
|
version: 1.3.0.0
|
|
github: "polysemy-research/polysemy"
|
|
license: BSD3
|
|
author: "Sandy Maguire"
|
|
maintainer: "sandy@sandymaguire.me"
|
|
copyright: "2019 Sandy Maguire"
|
|
build-type: Custom
|
|
|
|
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
|
|
- stm >= 2 && < 3
|
|
- 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.9
|
|
- unagi-chan >= 0.4.0.0 && < 0.5
|
|
- async >= 2.2 && < 3
|
|
- type-errors >= 0.2.0.0
|
|
- type-errors-pretty >= 0.0.0.0 && < 0.1
|
|
- QuickCheck >= 2.11.3 && < 3
|
|
|
|
custom-setup:
|
|
dependencies:
|
|
- base >= 4.9 && < 5
|
|
- Cabal
|
|
- cabal-doctest >=1.0.6 && <1.1
|
|
|
|
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
|
|
|
|
# - condition: impl(ghc >= 8.7)
|
|
# dependencies:
|
|
# - loopbreaker >= 0.1 && < 0.2
|
|
|
|
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
|
|
|
|
# We use this plugin to get to more agressive inlining without need for
|
|
# explicit "loopbreakers" in function definitions all over ther codebase
|
|
# --- sadly it can only work on newer versions of GHC currently
|
|
# - condition: impl(ghc >= 8.7)
|
|
# ghc-options:
|
|
# - -fplugin=Loopbreaker
|
|
|
|
- condition: flag(error-messages)
|
|
then:
|
|
# dummy value because cabal is stupid
|
|
cpp-options: -DCABAL_SERIOUSLY_CMON_MATE
|
|
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
|