Concrete functor and monad transformers

Version on this page:
LTS Haskell 15.14:
Stackage Nightly 2020-05-26:
Latest on Hackage:

See all snapshots transformers appears in

BSD-3-Clause licensed by Andy Gill, Ross Paterson
Maintained by Ross Paterson

Module documentation for

This version can be pinned in stack with:[email protected]:f4c4265ccc1f31dadaf6d9914b049d5cee844e84024a76915471541e445a61e4,2233
  • Control
    • Control.Applicative
      • Control.Applicative.Backwards
      • Control.Applicative.Lift
    • Control.Monad
      • Control.Monad.IO
        • Control.Monad.IO.Class
      • Control.Monad.Trans
        • Control.Monad.Trans.Class
        • Control.Monad.Trans.Cont
        • Control.Monad.Trans.Error
        • Control.Monad.Trans.Identity
        • Control.Monad.Trans.List
        • Control.Monad.Trans.Maybe
        • Control.Monad.Trans.RWS
          • Control.Monad.Trans.RWS.Lazy
          • Control.Monad.Trans.RWS.Strict
        • Control.Monad.Trans.Reader
        • Control.Monad.Trans.State
          • Control.Monad.Trans.State.Lazy
          • Control.Monad.Trans.State.Strict
        • Control.Monad.Trans.Writer
          • Control.Monad.Trans.Writer.Lazy
          • Control.Monad.Trans.Writer.Strict
  • Data
    • Data.Functor
      • Data.Functor.Compose
      • Data.Functor.Constant
      • Data.Functor.Identity
      • Data.Functor.Product
      • Data.Functor.Reverse

A portable library of functor and monad transformers, inspired by the paper "Functional Programming with Overloading and Higher-Order Polymorphism", by Mark P Jones, in Advanced School of Functional Programming, 1995 (

This package contains:

  • the monad transformer class (in Control.Monad.Trans.Class)

  • concrete functor and monad transformers, each with associated operations and functions to lift operations associated with other transformers.

It can be used on its own in portable Haskell code, or with the monad classes in the mtl or monads-tf packages, which automatically lift operations introduced by monad transformers through other transformers.