Hello,<div><br></div><div>I keep running into issues where I want to use some version of parsec, quickcheck,  haxml, etc, in my code, but my code links against a different third party library (e.g. network) which uses a different version of the library (e.g., parsec) than what I want to use, and that makes cabal unhappy.</div>
<div><br></div><div>If I use, runhaskell Setup.hs configure, I get warnings like:</div><div><br></div><div><div>~/n-heptane/projects/haskell/web-routes/web-routes-happstack $ runhaskell Setup.hs configure --user</div><div>
Configuring web-routes-happstack-0.18...</div><div>Warning: This package indirectly depends on multiple versions of the same</div><div>package. This is highly likely to cause a compile failure.</div><div>package network-2.2.1.7 requires parsec-2.1.0.1</div>
<div>package hsemail-1.3 requires parsec-2.1.0.1</div><div>package happstack-util-0.4.3 requires parsec-2.1.0.1</div><div>package happstack-server-0.4.3 requires parsec-2.1.0.1</div><div>package web-routes-0.18 requires parsec-3.1.0</div>
<div><br></div><div>Now, the project actually builds and runs fine, because the code in network that uses parsec and the code in my library that uses parsec do not interact at the parsec-level at all. </div><div><br></div>
<div>But, cabal install can not handle this, because it (currently) can&#39;t *know* that it&#39;s actually going to work. </div><div><br></div><div>Now, parsec and quickcheck are in the haskell platform. So, that should drive a lot of packages to use the same versions. But what about libraries such as HaXml which are not in the platform? Or what about this case where I want parsec 3, even though parsec 2 is in the haskell platform?</div>
<div><br></div><div>Any ideas about what should be done? We have this problem with QuickCheck and happstack when people try to cabal install gitit. And I am running into the problem again with the urlt / web-routes library.</div>
<div><br></div><div>- jeremy</div></div>