
On Fri, Jan 21, 2011 at 12:50 PM, Dmitry Astapov
On Fri, Jan 21, 2011 at 8:02 AM, Michael Snoyman
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
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 Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Dmitry Astapov