2019-03-20 07:46:26 +03:00
|
|
|
name: polysemy
|
2019-10-29 15:19:26 +03:00
|
|
|
version: 1.2.3.0
|
2019-03-20 07:46:26 +03:00
|
|
|
github: "isovector/polysemy"
|
2019-02-13 23:52:56 +03:00
|
|
|
license: BSD3
|
|
|
|
author: "Sandy Maguire"
|
|
|
|
maintainer: "sandy@sandymaguire.me"
|
|
|
|
copyright: "2019 Sandy Maguire"
|
2019-10-28 19:25:30 +03:00
|
|
|
build-type: Custom
|
2019-02-13 23:52:56 +03:00
|
|
|
|
|
|
|
extra-source-files:
|
|
|
|
- README.md
|
|
|
|
- ChangeLog.md
|
|
|
|
|
2019-04-10 23:27:25 +03:00
|
|
|
synopsis: Higher-order, low-boilerplate, zero-cost free monads.
|
|
|
|
category: Language
|
2019-02-13 23:52:56 +03:00
|
|
|
|
2019-03-20 07:46:26 +03:00
|
|
|
description: Please see the README on GitHub at <https://github.com/isovector/polysemy#readme>
|
2019-02-13 23:52:56 +03:00
|
|
|
|
|
|
|
dependencies:
|
2019-06-20 00:25:37 +03:00
|
|
|
- base >= 4.9 && < 5
|
|
|
|
- containers >= 0.5 && < 0.7
|
|
|
|
- mtl >= 2.2.2 && < 3
|
|
|
|
- syb >= 0.7 && < 0.8
|
2019-08-16 00:23:06 +03:00
|
|
|
- stm >= 2 && < 3
|
2019-06-20 00:25:37 +03:00
|
|
|
- template-haskell >= 2.12.0.0 && < 3
|
|
|
|
- th-abstraction >= 0.3.1.0 && < 0.4
|
|
|
|
- transformers >= 0.5.2.0 && < 0.6
|
2019-09-15 22:40:31 +03:00
|
|
|
- first-class-families >= 0.5.0.0 && < 0.7
|
2019-06-26 06:46:54 +03:00
|
|
|
- unagi-chan >= 0.4.0.0 && < 0.5
|
|
|
|
- async >= 2.2 && < 3
|
2019-07-03 23:05:51 +03:00
|
|
|
- type-errors >= 0.2.0.0
|
2019-07-20 15:48:42 +03:00
|
|
|
- type-errors-pretty >= 0.0.0.0 && < 0.1
|
2019-11-01 21:57:53 +03:00
|
|
|
- QuickCheck >= 2.11.3 && < 3
|
2019-02-13 23:52:56 +03:00
|
|
|
|
2019-10-28 19:25:30 +03:00
|
|
|
custom-setup:
|
|
|
|
dependencies:
|
|
|
|
- base >= 4.9 && < 5
|
|
|
|
- Cabal
|
|
|
|
- cabal-doctest >=1.0.6 && <1.1
|
|
|
|
|
2019-04-20 13:57:56 +03:00
|
|
|
default-extensions:
|
|
|
|
- DataKinds
|
|
|
|
- DeriveFunctor
|
|
|
|
- FlexibleContexts
|
|
|
|
- GADTs
|
|
|
|
- LambdaCase
|
|
|
|
- PolyKinds
|
|
|
|
- RankNTypes
|
|
|
|
- ScopedTypeVariables
|
|
|
|
- StandaloneDeriving
|
|
|
|
- TypeApplications
|
|
|
|
- TypeOperators
|
|
|
|
- TypeFamilies
|
|
|
|
- UnicodeSyntax
|
|
|
|
|
2019-06-20 00:25:37 +03:00
|
|
|
when:
|
|
|
|
- condition: impl(ghc < 8.6)
|
|
|
|
default-extensions:
|
|
|
|
- MonadFailDesugaring
|
|
|
|
- TypeInType
|
|
|
|
|
2019-07-07 18:27:18 +03:00
|
|
|
- condition: impl(ghc >= 8.7)
|
2019-07-01 09:13:37 +03:00
|
|
|
dependencies:
|
|
|
|
- loopbreaker >= 0.1 && < 0.2
|
|
|
|
|
2019-03-18 04:03:23 +03:00
|
|
|
flags:
|
|
|
|
dump-core:
|
|
|
|
description: Dump HTML for the core generated by GHC during compilation
|
2019-03-19 06:04:21 +03:00
|
|
|
default: False
|
2019-03-18 04:03:23 +03:00
|
|
|
manual: True
|
2019-04-08 20:47:07 +03:00
|
|
|
error-messages:
|
|
|
|
description: Provide custom error messages
|
|
|
|
default: True
|
|
|
|
manual: True
|
2019-03-18 04:03:23 +03:00
|
|
|
|
2019-02-13 23:52:56 +03:00
|
|
|
library:
|
2019-05-23 10:49:26 +03:00
|
|
|
ghc-options: -Wall
|
2019-02-13 23:52:56 +03:00
|
|
|
source-dirs: src
|
2019-05-16 22:26:18 +03:00
|
|
|
other-modules: Polysemy.Internal.PluginLookup
|
2019-03-20 16:53:22 +03:00
|
|
|
|
2019-03-18 04:03:23 +03:00
|
|
|
when:
|
|
|
|
- condition: flag(dump-core)
|
2019-04-08 20:47:07 +03:00
|
|
|
dependencies:
|
|
|
|
- dump-core
|
|
|
|
ghc-options:
|
|
|
|
- -fplugin=DumpCore
|
2019-07-01 09:13:37 +03:00
|
|
|
- -fplugin-opt=DumpCore:core-html
|
2019-04-08 20:47:07 +03:00
|
|
|
|
2019-06-20 00:25:37 +03:00
|
|
|
- condition: impl(ghc < 8.2.2)
|
|
|
|
dependencies:
|
|
|
|
- unsupported-ghc-version > 1 && < 1
|
|
|
|
|
2019-07-01 09:13:37 +03:00
|
|
|
# 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
|
2019-07-07 18:27:18 +03:00
|
|
|
- condition: impl(ghc >= 8.7)
|
2019-07-01 09:13:37 +03:00
|
|
|
ghc-options:
|
|
|
|
- -fplugin=Loopbreaker
|
|
|
|
|
2019-04-08 20:47:07 +03:00
|
|
|
- condition: flag(error-messages)
|
2019-06-26 07:43:10 +03:00
|
|
|
then:
|
|
|
|
# dummy value because cabal is stupid
|
|
|
|
cpp-options: -DCABAL_SERIOUSLY_CMON_MATE
|
2019-06-16 03:04:11 +03:00
|
|
|
else:
|
|
|
|
cpp-options: -DNO_ERROR_MESSAGES
|
2019-02-13 23:52:56 +03:00
|
|
|
|
|
|
|
tests:
|
2019-03-20 07:46:26 +03:00
|
|
|
polysemy-test:
|
2019-03-19 06:04:21 +03:00
|
|
|
main: Main.hs
|
2019-02-13 23:52:56 +03:00
|
|
|
source-dirs: test
|
|
|
|
ghc-options:
|
|
|
|
- -threaded
|
|
|
|
- -rtsopts
|
|
|
|
- -with-rtsopts=-N
|
2019-06-16 03:12:18 +03:00
|
|
|
build-tools:
|
|
|
|
- hspec-discover >= 2.0
|
2019-02-13 23:52:56 +03:00
|
|
|
dependencies:
|
2019-03-20 07:46:26 +03:00
|
|
|
- polysemy
|
2019-06-26 06:46:54 +03:00
|
|
|
- inspection-testing >= 0.4.2 && < 0.5
|
2019-05-18 18:42:14 +03:00
|
|
|
- hspec >= 2.6.0 && < 3
|
2019-06-16 03:04:11 +03:00
|
|
|
- doctest >= 0.16.0.1 && < 0.17
|
2019-02-22 03:34:06 +03:00
|
|
|
|
|
|
|
benchmarks:
|
2019-03-20 07:46:26 +03:00
|
|
|
polysemy-bench:
|
2019-02-22 03:34:06 +03:00
|
|
|
source-dirs: bench
|
|
|
|
main: countDown.hs
|
|
|
|
dependencies:
|
|
|
|
- criterion
|
|
|
|
- free
|
|
|
|
- freer-simple
|
|
|
|
- mtl
|
2019-03-20 07:46:26 +03:00
|
|
|
- polysemy
|