Name: multistate Version: 0.7.1.2 Cabal-Version: >= 1.10 Build-Type: Simple license: BSD3 license-file: LICENSE Copyright: Copyright (C) 2013-2017 Jan Bracker, 2013-2016 Lennart Spitzner Maintainer: Lennart Spitzner 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 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.11, 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.11, transformers <0.6, hspec >=2 && <2.5 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.11, mtl <2.3, transformers <0.6 } else { buildable: False } main-is: Example.hs hs-source-dirs: example }