<div dir="ltr">I'm in favor of adding support to Cabal to allow for this situation. However: I highly doubt this will be the panacea as predicted. It's already a huge source of confusion for people using GHCi what they get messages about "ByteString is not ByteString." In fact, this confusion is so prevalent that I wrote a blog post about it in September[1].<div><br></div><div>I strongly believe that the best end-user experience comes from having a single mapping from package name to actually installed package/version/dependencies. I'd go even farther and say that users would be well served by having a single mapping from module name to installed module. In fact, Adam Bergmark even created an issue[2] to look into adding support to Stackage to start enforcing this situation, though the response to a blog post I wrote on that[3] implies that people are not so interested in addressing that problem.</div><div><br></div><div>So my word of warning here is: if we simply throw multiple package/version/dependency combinations at users via cabal, there's a good chance that we'll do more harm than good.<br><div><br></div><div>[1] <a href="http://www.yesodweb.com/blog/2014/09/woes-multiple-package-versions" target="_blank">http://www.yesodweb.com/blog/2014/09/woes-multiple-package-versions</a></div></div><div>[2] <a href="https://github.com/fpco/stackage/issues/416" target="_blank">https://github.com/fpco/stackage/issues/416</a></div><div>[3] <a href="http://www.yesodweb.com/blog/2014/02/module-name-conflicts" target="_blank">http://www.yesodweb.com/blog/2014/02/module-name-conflicts</a></div><br><div class="gmail_quote">On Mon, Mar 23, 2015 at 10:45 AM Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" target="_blank">simonpj@microsoft.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Cabal developers<br>
<br>
You'll probably have seen the thread about the Haskell Platform.<br>
<br>
Among other things, this point arose:<br>
<br>
| Another thing we should fix is the (now false) impression that HP gets in<br>
| the way of installing other packages and versions due to cabal hell.<br>
<br>
People mean different things by "cabal hell", but the inability to<br>
simultaneously install multiple versions of the same package,<br>
compiled against different dependencies<br>
is certainly one of them, and I think it is the one that Yitzchak is referring to here.<br>
<br>
But some time now GHC has allowed multiple versions of the same package (compiled against different dependencies) to be installed simultaneously. So all we need to do is to fix Cabal to allow it too, and thereby kill of a huge class of cabal-hell problems at one blow.<br>
<br>
But time has passed and it hasn't happened. Is this because I'm misunderstanding? Or because it is harder than I think? Or because there are much bigger problems? Or because there is insufficient effort available? Or what?<br>
<br>
Unless I'm way off beam, this "multiple installations of the same package" thing has been a huge pain forever, and the solution is within our grasp. What's stopping us grasping it?<br>
<br>
Simon<br>
<br>
______________________________<u></u><u></u>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" target="_blank">http://mail.haskell.org/cgi-<u></u>bi<u></u>n/mailman/listinfo/libraries</a><br>
</blockquote></div></div>