name: ether
version: 0.5.1.0
x-revision: 2
synopsis: Monad transformers and classes
description:
Ether is a Haskell library that extends @mtl@ and @transformers@ with
tagged monad transformers and classes in a compatible way.
Introduction
category: Control
license: BSD3
license-file: LICENSE
author: Vladislav Zavialov
maintainer: Vladislav Zavialov
homepage: https://int-index.github.io/ether/
bug-reports: https://github.com/int-index/ether/issues
build-type: Simple
cabal-version: >=1.18
extra-source-files: CHANGELOG.md
source-repository head
type: git
location: git@github.com:int-index/ether.git
flag disable-tup-instances
description:
Disable auto-generated 'HasLens' instances for tuples. The reason one
might want to do this is to reduce the size of .hi-files, as well as the
time and memory GHC needs to build Ether. To recover flattening with
tuples, use 'Ether.Internal.makeTupleInstancesHasLens' at specific tuple
sizes you need in your application.
This is a build-time performance hack, enable this flag at your own risk.
default: False
manual: True
library
exposed-modules:
Ether
Ether.Reader
Ether.State
Ether.Writer
Ether.Except
Ether.TaggedTrans
Ether.TagDispatch
Ether.Internal
other-modules:
Ether.Internal.Tags
Ether.Internal.HasLens
Ether.Internal.TH_Utils
Ether.Internal.TH_TupleInstances
Ether.Internal.TupleInstances
build-depends:
base >=4.9 && <4.13,
transformers >=0.5.2.0,
transformers-lift >=0.2.0.1,
mtl >=2.2.1,
mmorph >=1.0.4,
monad-control >=1.0.0.4,
transformers-base >=0.4.4,
writer-cps-mtl >= 0.1.1.4,
exceptions >=0.8,
template-haskell >=2.11,
tagged >=0.8.5,
reflection >=2.1
default-language:
Haskell2010
default-extensions:
AllowAmbiguousTypes
ConstraintKinds
DataKinds
DeriveGeneric
EmptyDataDecls
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
PartialTypeSignatures
PolyKinds
ScopedTypeVariables
RankNTypes
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeInType
TypeOperators
TypeSynonymInstances
UndecidableInstances
UndecidableSuperClasses
hs-source-dirs:
src
ghc-options:
-Wall -O2
if flag(disable-tup-instances)
cpp-options: -DDISABLE_TUP_INSTANCES
test-suite regression
build-depends:
base >=4.9 && <4.13,
transformers >=0.4.2,
mtl >=2.2.1,
tasty >=0.10,
tasty-quickcheck >=0.8,
QuickCheck >=2.8,
ghc-prim >=0.3,
lens >=4.14,
ether
main-is:
Regression.hs
other-modules:
Regression.T1
Regression.T2
Regression.T3
Regression.T4
Regression.T5
Regression.T6
Regression.T7
Regression.T8
Regression.T9
Regression.T10
Regression.T11
Regression.T12
type:
exitcode-stdio-1.0
hs-source-dirs:
test
default-language:
Haskell2010
default-extensions:
AllowAmbiguousTypes
ConstraintKinds
DataKinds
DeriveGeneric
EmptyDataDecls
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
PartialTypeSignatures
PolyKinds
ScopedTypeVariables
RankNTypes
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeInType
TypeOperators
TypeSynonymInstances
UndecidableInstances
UndecidableSuperClasses
ghc-options:
-Wall -fno-warn-missing-signatures
benchmark bench
build-depends:
base >=4.9 && <4.13,
mtl >=2.2.1,
transformers >=0.4.2,
criterion >=1.1,
deepseq >=1.4,
lens >=4.14,
ether
main-is:
Bench.hs
type:
exitcode-stdio-1.0
hs-source-dirs:
bench
default-language:
Haskell2010
default-extensions:
AllowAmbiguousTypes
ConstraintKinds
DataKinds
DeriveGeneric
EmptyDataDecls
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
PartialTypeSignatures
PolyKinds
ScopedTypeVariables
RankNTypes
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeInType
TypeOperators
TypeSynonymInstances
UndecidableInstances
UndecidableSuperClasses
ghc-options:
-Wall -O2
ghc-prof-options:
-fprof-auto