On Fri, Jan 21, 2011 at 12:50 PM, Dmitry Astapov <[email protected]> wrote: > > > On Fri, Jan 21, 2011 at 8:02 AM, Michael Snoyman <[email protected]> > wrote: >> >> Couldn't you depend on either version of mtl? > > 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. > Cabal reasons along the following lines: > one dependency is hledger 0.13, which is built against the mtl 1.x. > Selecting both > another dependency is Chart, which is built against transformers 0.2.x > Now instances from transformers conflict with those from mtl 1.x, when you > are building hledger-chart > Plus, when you are rebuilding hledger-0.13 from scratch, they start to > conflict as well. > 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. > The only solution for me was to bump mtl to 2.x, rebuild everything > depending on mtl, and something pulled in newer "process" in the process, > which caused another wave of rebuilds. > With 6.12.3 or 7.0.1 everything is way easier (as expected) :)
What I mean is that if his code isn't using any features particular to a specific version of mtl, he can relax the version bounds to allow *either* version, which should at least sidestep the issue. If the underlying libraries depend on both mtl 1 and 2, though, there really isn't much to be done. >> On Fri, Jan 21, 2011 at 3:37 AM, Simon Michael <[email protected]> wrote: >> > You mean mtl 2.*, right ? >> > >> > Yes that is a problem. I'm nervous about requiring mtl 2 because when I >> > bumped hledger 0.13's process dependency to 0.14 for similar reasons it >> > made >> > all kinds of trouble for folks who just want to install the hledger core >> > in >> > standard/older haskell environments. >> > >> > On Jan 20, 2011, at 5:11 PM, Dmitry Astapov wrote: >> >> >> >> Since hledger-chart depends on Chart, which in turn depends on >> >> transformers 0.2.*, it will make a sense to bump all mtl dependencies >> >> in >> >> hledger to 2.2 >> >> >> >> When one does "make install" with older GHC (like 6.12.1, for example), >> >> and mtl 1.x is available, it would be happily used for hledger-lib and >> >> hledger, but compilation of hledger-chart will pull in transformers 0.2 >> >> (but >> >> not the newer mtl) and will fail due to conflicting instances. >> > >> > >> > _______________________________________________ >> > Haskell-Cafe mailing list >> > [email protected] >> > http://www.haskell.org/mailman/listinfo/haskell-cafe >> > > > > > -- > Dmitry Astapov > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
