-
Notifications
You must be signed in to change notification settings - Fork 6
/
package.yaml
145 lines (131 loc) · 3.17 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
133
134
135
136
137
138
139
140
141
142
143
144
145
name: cleff
version: 0.3.4.0
github: "re-xyr/cleff"
license: BSD3
author: "Xy Ren"
maintainer: "[email protected]"
copyright: "2021 Xy Ren"
tested-with:
- GHC == 8.6.5
- GHC == 8.8.4
- GHC == 8.10.7
- GHC == 9.0.2
- GHC == 9.2.2
extra-source-files:
- CHANGELOG.md
- README.md
synopsis: Fast and concise extensible effects
category: Control, Effect, Language
description: |
@cleff@ is an effect system for building modular, well-abstracted and performant programs. It provides:
- Blazing-fast speed in the majority of use cases (<#benchmarks Benchmarks>)
- Well-built integration with the existing Haskell ecosystem (@unliftio@, @monad-control@, @exceptions@...)
- Predictable behavior under expections and concurrency that does not stab you in the back
- Flexible and expressive API for power users, with first-class support of scoped effects
You can use @cleff@ out of the box, with little to no boilerplate. To get started, use the module "Cleff" as a
starting point.
dependencies:
- atomic-primops >= 0.8 && < 0.9
- base >= 4.12 && < 4.17
- containers >= 0.5 && < 0.7
- exceptions >= 0.10 && < 0.11
- microlens >= 0.1 && < 0.5
- monad-control >= 1 && < 1.1
- primitive >= 0.6.4 && < 0.8
- stm >= 2.5 && < 2.6
- template-haskell >= 2.14 && < 2.19
- th-abstraction >= 0.2 && < 0.5
- transformers-base >= 0.4 && < 0.5
- unliftio-core >= 0.1.1 && < 0.3
flags:
dynamic-ioe:
description: |
Make @IOE@ a real effect. This is only for reference purposes and should not be enabled in production code.
manual: true
default: false
ghc-options:
- -Wall
- -Widentities
- -Wincomplete-record-updates
- -Wincomplete-uni-patterns
- -Wno-unticked-promoted-constructors
- -Wpartial-fields
- -Wunused-type-patterns
# - -ddump-hi
# - -ddump-simpl
# - -ddump-to-file
# - -dsuppress-all
# - -dsuppress-uniques
when:
- condition: flag(dynamic-ioe)
cpp-options:
- -DDYNAMIC_IOE
- condition: impl(ghc >= 8.8)
ghc-options:
- -Wmissing-deriving-strategies
default-extensions:
- BangPatterns
- BlockArguments
- ConstraintKinds
- DataKinds
- DeriveAnyClass
- DerivingStrategies
- DerivingVia
- EmptyCase
- FlexibleContexts
- FlexibleInstances
- FunctionalDependencies
- GADTs
- GeneralizedNewtypeDeriving
- LambdaCase
- MagicHash
- NoStarIsType
- PatternSynonyms
- PolyKinds
- RankNTypes
- RoleAnnotations
- ScopedTypeVariables
- StandaloneDeriving
- TemplateHaskell
- TupleSections
- TypeApplications
- TypeFamilies
- TypeOperators
- UndecidableInstances
- UnicodeSyntax
- UnliftedFFITypes
- ViewPatterns
library:
source-dirs: src
ghc-options:
- -Wmissing-export-lists
other-modules:
- Data.Any
- Data.PrimVec
- Data.RadixVec
- Data.ThreadVar
tests:
cleff-test:
main: Main.hs
source-dirs: test
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- cleff
- extra
- hspec
- lifted-base
- unliftio
cleff-example:
main: Main.hs
source-dirs: example
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- cleff
- extra
- unliftio