Hi, gents -<div><br></div><div>I've lately been writing some application code that, by virtue of the libraries it uses, depends on both mtl and monads-fd. Alas, this means that I have two incompatible versions of some of the most widely used monad transformers in scope, and I have to carefully import the right version of Control.Monad.Trans:</div>
<div><br></div><div>{-# LANGUAGE PackageImports #-}</div><div><div>import qualified "mtl" Control.Monad.Trans as M</div><div>import qualified "monads-fd" Control.Monad.Trans as F</div></div><div><br></div>
<div>Then I have to be equally careful in using the right version of liftIO depending on the monad I'm working in.</div><div><br></div><div>This is a really bad situation for some of the platform's core libraries to be in, even temporarily, as it puts a solid barrier in place to non-wizardly people due to the confusion induced, especially since the kind of code I'm writing is the kind of appealing-yet-vanilla stuff that I'd hope would simply work (using the Snap web framework and an XMPP library).</div>
<div><br></div><div>Greg Collins mentioned that there's some kind of plan for mtl to become a shell package that depends on transformers and monads-fd. Given my experience, I'd consider advancing this plan and getting it into the next Haskell Platform release (and ready before GHC 7 ships) to be a matter of the utmost urgency.</div>
<div><br></div><div>What kind of help can I provide you to rush this along?</div><div><br></div><div>Regards,</div><div>Bryan.</div>