<br><br><div class="gmail_quote">On Fri, Jan 21, 2011 at 8:02 AM, Michael Snoyman <span dir="ltr">&lt;<a href="mailto:michael@snoyman.com">michael@snoyman.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Couldn&#39;t you depend on either version of mtl?<br></blockquote><div><br></div><div>Point is that in this particular case two different versions of mtl are being pulled in the compilation by different dependencies. Plus, transformers 0.2.* is selected as well.</div>

<div><br></div><div>Cabal reasons along the following lines:</div><div>  one dependency is hledger 0.13, which is built against the mtl 1.x. Selecting both</div><div>  another dependency is Chart, which is built against transformers 0.2.x</div>

<div><br></div><div>  Now instances from transformers conflict with those from mtl 1.x, when you are building hledger-chart</div><div><br></div><div>  Plus, when you are rebuilding hledger-0.13 from scratch, they start to conflict as well.</div>

<div><br></div><div>  Add in the mix deficiency of 6.12.1 which is sometimes picks up wrong version of packages (or so I remember), and all the hell breaks loose.</div><div><br></div><div>  The only solution for me was to bump mtl to 2.x, rebuild everything depending on mtl, and something pulled in newer &quot;process&quot; in the process, which caused another wave of rebuilds. </div>

<div><br></div><div>  With 6.12.3 or 7.0.1 everything is way easier (as expected) :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5"><br>
On Fri, Jan 21, 2011 at 3:37 AM, Simon Michael &lt;<a href="mailto:simon@joyful.com">simon@joyful.com</a>&gt; wrote:<br>
&gt; You mean mtl 2.*, right ?<br>
&gt;<br>
&gt; Yes that is a problem. I&#39;m nervous about requiring mtl 2 because when I<br>
&gt; bumped hledger 0.13&#39;s process dependency to 0.14 for similar reasons it made<br>
&gt; all kinds of trouble for folks who just want to install the hledger core in<br>
&gt; standard/older haskell environments.<br>
&gt;<br>
&gt; On Jan 20, 2011, at 5:11 PM, Dmitry Astapov wrote:<br>
&gt;&gt;<br>
&gt;&gt; Since hledger-chart depends on Chart, which in turn depends on<br>
&gt;&gt; transformers 0.2.*, it will make a sense to bump all mtl dependencies in<br>
&gt;&gt; hledger to 2.2<br>
&gt;&gt;<br>
&gt;&gt; When one does &quot;make install&quot; with older GHC (like 6.12.1, for example),<br>
&gt;&gt; and mtl 1.x is available, it would be happily used for hledger-lib and<br>
&gt;&gt; hledger, but compilation of hledger-chart will pull in transformers 0.2 (but<br>
&gt;&gt; not the newer mtl) and will fail due to conflicting instances.<br>
&gt;<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; Haskell-Cafe mailing list<br>
&gt; <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;<br>
</blockquote></div><br><br clear="all"><br>-- <br>Dmitry Astapov<br>