File multistate.cabal of Package ghc-multistate
Name: multistate
Version: 0.7.1.1
x-revision: 1
Cabal-Version: >= 1.10
Build-Type: Simple
license: BSD3
license-file: LICENSE
Copyright: Jan Bracker, Lennart Spitzner
Maintainer: Lennart Spitzner <lsp@informatik.uni-kiel.de>
Author: Jan Bracker, Lennart Spitzner
Homepage: https://github.com/lspitzner/multistate
Bug-reports: https://github.com/lspitzner/multistate/issues
Stability: Experimental
category: Control
tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
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: git@github.com:lspitzner/multistate.git
flag build-example
description: Build the MultiState-example example program
default: False
library {
default-language:
Haskell2010
exposed-modules:
Data.HList.HList
Data.HList.ContainsType
Control.Monad.MultiState
Control.Monad.MultiReader
Control.Monad.MultiWriter
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
other-modules:
build-depends:
base >= 4.6 && <4.10,
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
FlexibleInstances
UndecidableInstances
TypeOperators
DataKinds
if impl(ghc < 7.10) {
default-extensions:
OverlappingInstances
}
ghc-options: {
-Wall
-fno-warn-unused-imports
}
if impl(ghc > 8.0) {
ghc-options: {
-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 <4.10,
transformers <0.6,
hspec <2.4
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 <4.10,
mtl <2.3,
transformers <0.6
} else {
buildable: False
}
main-is: Example.hs
hs-source-dirs: example
}