Could iteratee depend on mtl instead of transformers?

Duncan Coutts duncan.coutts at
Wed Nov 18 13:04:24 EST 2009

On Wed, 2009-11-18 at 00:57 +0000, Ross Paterson wrote:

> According to Ganesh's survey, 17 packages (and their dependents) on
> hackage would be broken by turning mtl into a compatibility layer over
> transformers+monads-fd.  They would need to be updated, but need not
> switch to monads-tf or monads-fd.  Or they could avoid breakage by
> adding a dependency mtl < 2.  Individual packages could switch to
> the new packages at their leisure.

Ross, if the plan is to have the new combined package be mtl-2.x then
you might as well go ahead and modify the preferred-versions[1] file to

mtl < 2

Then cabal-install will then use the old mtl for all the old packages
that do not use an upper bound.

We should also add mtl to the list packages to check in
Distribution/PackageDescription/Check.hs. At the moment it's hard-coded
to be a list of 1 (base), so that'd need doing too. This would
eventually be replaced by a generic way of opting into the regime.

Or, if you all think the amount of breakage is not that great, and it'd
be simpler just to fix the packages affected, then do nothing :-)

If you are modifying the preferred-versions file, would you mind
sticking in:

cabal-install < 0.8

because I'm about to release both cabal-install-0.6.4 and 0.8.0, but I
don't want everyone getting prompted to update to 0.8 immediately (cabal
tells you when newer versions of itself are available).



More information about the Libraries mailing list