Monad transformers and classes

Version on this page:
LTS Haskell 11.22:
Stackage Nightly 2018-03-12:
Latest on Hackage:

See all snapshots ether appears in

BSD-3-Clause licensed by Vladislav Zavialov
Maintained by Vladislav Zavialov
This version can be pinned in stack with:ether-,4870

Ether is a Haskell library that extends mtl and transformers with tagged monad transformers and classes in a compatible way. Introduction


  • Disable HasLens for tuples via cabal flag.

  • Support only GHC 8.0 and higher.
  • Use the TypeApplications extension to get rid of Proxy.
  • Remove Control.Ether.TH.
  • Remove Control.Ether.Abbr.
  • Unify Dispatch and TaggedTrans.
  • Better MonadBase and MonadBaseControl instances.
  • Add flattening for ReaderT and StateT.
  • Add zooming for MonadState.
  • Simpler module structure.

  • Export DispatchT newtype constructor.

  • Poly-kinded tags.
  • Remove Control.Ether.Tagged.
  • Replace Control.Ether.Wrapped with Control.Monad.Trans.Ether.Dispatch.
  • Unified tagged transformer type in Control.Monad.Trans.Ether.Tagged.
  • MonadThrow, MonadCatch, MonadMask instances.
  • Drop newtype-generics.
  • Instance search is now more strict.

  • Fix GHC 7.8 test issue.
  • Remove unused imports.

  • Fix an issue with overlapping instances.

  • MonadBase, MonadTransControl, MonadBaseControl instances.
  • MFunctor, MMonad instances.
  • Use transformers-lift.

  • Constraint abbreviations: Control.Ether.Abbr and Control.Ether.Implicit.Abbr.

  • Convenience modules Control.Monad.Ether and Control.Monad.Ether.Implicit.
  • Remove fmapN and deepN.
  • Remove Control.Monad.Ether.Implicit.Except.TH.
  • Add handle and handleT.

  • Fix transformers lower bound.
  • Remove unused language extensions.
  • GHC 7.8 compatibility.