mtlx: Monad transformer library with type indexes, providing 'free' copies.

[ bsd3, control, library ] [ Propose Tags ]

A monad transformer library with type indexes, which allows the programmer to get a distinct copy of one of the monads without reproducing definitions and instances. It currently supports IdentityX, ReaderX, StateX, WriterX, RWSX, and ErrorX monads (and their transformer versions). All these copies can be combined into a transformer stack, including any of the original mtl monads. Inspired by the original mtl. That library was inspired by the paper /Functional Programming with Overloading and Higher-Order Polymorphism/, by Mark P Jones (, Advanced School of Functional Programming, 1995. See the Examples.hs file for usage.


[Last Documentation]

  • Control
    • Monad
      • Control.Monad.ErrorX
        • Control.Monad.ErrorX.Class
      • Control.Monad.IdentityX
      • Control.Monad.Index
      • Control.Monad.RWSX
        • Control.Monad.RWSX.Class
        • Control.Monad.RWSX.Lazy
        • Control.Monad.RWSX.Strict
      • Control.Monad.ReaderX
        • Control.Monad.ReaderX.Class
      • Control.Monad.StateX
        • Control.Monad.StateX.Class
        • Control.Monad.StateX.Lazy
        • Control.Monad.StateX.Strict
      • Control.Monad.WriterX
        • Control.Monad.WriterX.Class
        • Control.Monad.WriterX.Lazy
        • Control.Monad.WriterX.Strict


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6
Dependencies base (>=4 && <5), mtl, QuickCheck (>= [details]
License BSD-3-Clause
Author Mark Snyder
Category Control
Uploaded by MarkSnyder at 2012-10-15T23:15:01Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 4882 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-23 [all 8 reports]