forked from polysemy-research/polysemy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpackage.yaml
132 lines (116 loc) · 3.09 KB
/
package.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: polysemy
version: 1.3.0.0
github: "isovector/polysemy"
license: BSD3
author: "Sandy Maguire"
maintainer: "[email protected]"
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