[Haskell-cafe] hledget: mtv vs transformers

Michael Snoyman michael at snoyman.com
Fri Jan 21 12:37:08 CET 2011


On Fri, Jan 21, 2011 at 12:50 PM, Dmitry Astapov <dastapov at gmail.com> wrote:
>
>
> On Fri, Jan 21, 2011 at 8:02 AM, Michael Snoyman <michael at snoyman.com>
> 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 <simon at joyful.com> 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 at haskell.org
>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>> >
>
>
>
> --
> Dmitry Astapov
>



More information about the Haskell-Cafe mailing list