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
}
openSUSE Build Service is sponsored by