For symmetry I agree both should probably be renamed.<div><div><br></div><div>What are the current breaking changes? <div><br></div><div>I gather from the discussion that State is no longer separate from StateT, along with Reader, Writer, RWS, Error, mutatis mutandis to obviate the need for both a base monad and transformer.</div>
<div><br></div><div>I guess the question is then, when should code start looking to changing their dependencies over to monads-tf and monads-fd? </div><div><br></div><div>A cleanly demarked cut over would be useful to get us out of this limbo state that helps nobody.</div>
<div><br></div><div>-Edward Kmett<br><br><div class="gmail_quote">On Tue, Nov 17, 2009 at 11:04 AM, Ross Paterson <span dir="ltr">&lt;<a href="mailto:ross@soi.city.ac.uk">ross@soi.city.ac.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, Nov 17, 2009 at 09:09:07AM -0500, Edward Kmett wrote:<br>
&gt; I like that transformers is Haskell 98 and presents a common core. I<br>
&gt; think that factoring it out is a laudable goal.<br>
&gt;<br>
&gt; However, my very problem is that monads-fd and monads-tf are mutually<br>
&gt; incompatible. It fragments the community of monad combinator users<br>
&gt; even further.<br>
&gt;<br>
&gt; If monads-fd sat in the existing location of mtl or was exported there<br>
&gt; by an mtl compatibility layer and monads-tf used a different namespace<br>
&gt; then you would have a clean solution in which both could be used in<br>
&gt; the same code, because both could be loaded.<br>
<br>
</div>The proposal is to make the next version of mtl a near-compatibility layer<br>
over monads-fd and transformers; it doesn&#39;t involve monads-tf directly.<br>
We could just rename all the modules in monads-tf (which aimed to mirror<br>
mtl-tf), or perhaps rename the modules in both monads-fd and monads-tf.<br>
Perhaps we should trim both packages to just the class modules (the others<br>
are re-exports mirroring mtl) and relocate those in the module hierarchy:<br>
<br>
    Control.Monad.Cont.Class<br>
    Control.Monad.Error.Class<br>
    Control.Monad.RWS.Class<br>
    Control.Monad.Reader.Class<br>
    Control.Monad.State.Class<br>
    Control.Monad.Writer.Class<br>
<br>
They both have the same Cont class; it need not be duplicated.<br>
<div><div></div><div class="h5">_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br></div></div></div>