-
Notifications
You must be signed in to change notification settings - Fork 3
/
multistate.cabal
130 lines (123 loc) · 3.52 KB
/
multistate.cabal
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
Name: multistate
Version: 0.8.0.4
Cabal-Version: >= 1.10
Build-Type: Simple
license: BSD3
license-file: LICENSE
Copyright: Copyright (C) 2013 Jan Bracker, 2013-2020 Lennart Spitzner
Maintainer: Lennart Spitzner <[email protected]>
Author: Jan Bracker, Lennart Spitzner
Homepage: https://github.com/lspitzner/multistate
Bug-reports: https://github.com/lspitzner/multistate/issues
Stability: Experimental
category: Control
Synopsis: like mtl's ReaderT / WriterT / StateT, but more than one
contained value/type.
Description:
When using multiple Read\/Write\/State transformers in the same monad stack,
it becomes necessary to lift the operations in order to affect a specific
transformer.
Using heterogeneous lists (and all kinds of GHC extensions magic),
this package provides transformers that remove that necessity:
MultiReaderT\/MultiWriterT\/MultiStateT\/MultiRWST can contain a
heterogeneous list of values.
.
See the <https://github.com/lspitzner/multistate README> for
a longer description.
extra-source-files:
README.md
changelog.md
source-repository head {
type: git
location: [email protected]:lspitzner/multistate.git
}
flag build-example
description: Build the MultiState-example example program
default: False
manual: True
library {
default-language:
Haskell2010
exposed-modules:
Data.HList.HList
Data.HList.ContainsType
Control.Monad.Trans.MultiGet.Class
Control.Monad.Trans.MultiReader
Control.Monad.Trans.MultiReader.Class
Control.Monad.Trans.MultiReader.Lazy
Control.Monad.Trans.MultiReader.Strict
Control.Monad.Trans.MultiWriter
Control.Monad.Trans.MultiWriter.Class
Control.Monad.Trans.MultiWriter.Lazy
Control.Monad.Trans.MultiWriter.Strict
Control.Monad.Trans.MultiState
Control.Monad.Trans.MultiState.Class
Control.Monad.Trans.MultiState.Lazy
Control.Monad.Trans.MultiState.Strict
Control.Monad.Trans.MultiRWS
Control.Monad.Trans.MultiRWS.Lazy
Control.Monad.Trans.MultiRWS.Strict
Control.Monad.Trans.MultiGST
Control.Monad.Trans.MultiGST.Lazy
Control.Monad.Trans.MultiGST.Strict
other-modules:
Control.Monad.Trans.MultiGST.Common
build-depends:
base >= 4.11 && <4.17,
mtl >= 2.1 && <2.3,
transformers >= 0.3 && <0.6,
tagged >= 0.7 && <0.9,
transformers-base <0.5,
monad-control >= 1.0 && <1.1
default-extensions:
GADTs
TypeFamilies
MultiParamTypeClasses
FunctionalDependencies
FlexibleContexts
FlexibleInstances
UndecidableInstances
TypeOperators
DataKinds
LambdaCase
ghc-options: {
-Wall
-Wcompat
-fno-warn-unused-imports
-fno-warn-redundant-constraints
}
hs-source-dirs: src
}
test-suite multistate-test {
type: exitcode-stdio-1.0
default-language: Haskell2010
buildable: True
build-depends:
-- no version constraints necessary, because they are already
-- given by library
multistate,
base <999,
transformers <0.6,
hspec >=2 && <2.9
ghc-options: -Wall
main-is: Test.hs
hs-source-dirs: test
}
executable multistate-example {
default-language:
Haskell2010
if flag(build-example) {
buildable: True
build-depends:
-- no version constraints necessary, because they are already
-- given by library
multistate,
base <999,
mtl <2.3,
transformers <0.6
} else {
buildable: False
}
main-is: Example.hs
hs-source-dirs: example
}