Could iteratee depend on mtl instead of transformers?

Ross Paterson ross at soi.city.ac.uk
Tue Nov 17 11:04:30 EST 2009


On Tue, Nov 17, 2009 at 09:09:07AM -0500, Edward Kmett wrote:
> I like that transformers is Haskell 98 and presents a common core. I
> think that factoring it out is a laudable goal.
>
> However, my very problem is that monads-fd and monads-tf are mutually
> incompatible. It fragments the community of monad combinator users
> even further.
>
> If monads-fd sat in the existing location of mtl or was exported there
> by an mtl compatibility layer and monads-tf used a different namespace
> then you would have a clean solution in which both could be used in
> the same code, because both could be loaded.

The proposal is to make the next version of mtl a near-compatibility layer
over monads-fd and transformers; it doesn't involve monads-tf directly.
We could just rename all the modules in monads-tf (which aimed to mirror
mtl-tf), or perhaps rename the modules in both monads-fd and monads-tf.
Perhaps we should trim both packages to just the class modules (the others
are re-exports mirroring mtl) and relocate those in the module hierarchy:

    Control.Monad.Cont.Class
    Control.Monad.Error.Class
    Control.Monad.RWS.Class
    Control.Monad.Reader.Class
    Control.Monad.State.Class
    Control.Monad.Writer.Class

They both have the same Cont class; it need not be duplicated.


More information about the Libraries mailing list