[Haskell-cafe] Re: Transformers versus monadLib versus...

Edward Kmett ekmett at gmail.com
Tue Jul 6 14:43:32 EDT 2010

On Tue, Jul 6, 2010 at 12:05 PM, Ertugrul Soeylemez <es at ertes.de> wrote:

> Yves Parès <limestrael at gmail.com> wrote:
> > I was wondering : wouldn't it be possible that things like BaseM be
> > implemented on top of MTL?
> > Couldn't just one develop a package, say mtl-missing, that would
> > contain the functionnalities of monadLib, but compatible with MTL?
> I don't know whether they're compatible.  Also there is probably nothing
> to implement from mtl in monadLib, so the more natural choice is not to
> use mtl at all and just use monadLib.
> I'd hate to be forced to go back to mtl.  Better update 'operational' to
> support monadLib.  Go forward to a good design instead of trying to keep
> old, broken designs alive.

You may want to review the thread here:


The gist of it is, I would recommend sticking with MTL for right now, but
confining yourself to the portions of it that transformers + monads-fd
export (i.e. using StateT s Identity instead of State, or avoiding the use
of the State constructors and instances on State) until transformers is done
being refactored and monads-fd + transformers becomes more or less mtl
compatible and the mtl shim = monads-fd + transformers shim is introduced in
a future haskell platform. At that point in time you should be able to
remove mtl and just reference monads-fd (and/or monads-tf)  + transformers.
This has the benefit of not fragmenting the user base, letting you link
against the large quantities of code that is built on the haskell platform
(i.e. HTTP, etc), and provides an upgrade path to bring the code written for
use with transformers and the code written for use with mtl into alignment
so they can all link some day in the relatively near future without cabal
flipping its lid.

Of course, adding support for monadLib, which doesn't conflict with any of
this is a completely concern.

-Edward Kmett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100706/4066e1f2/attachment.html

More information about the Haskell-Cafe mailing list