| I thought that "cabal install" should be viewed as installing an
| instance of the requested package by recompiling the whole transitive
| closure of dependencies from scratch, in a sort of NixOS-like way.
| Given this view, Cabal's reuse of already compiled and installed
| packages is purely an optimization that can prevent it from
| recompiling some things if it is absolutely certain that doing so is
| unnecessary. The problem then is just that Cabal is currently brokenly
| unable to handle multiple instances of an installed package with the
| same name and version.
I believe that what you describe is precisely The Glorious Plan
http://hackage.haskell.org/trac/ghc/wiki/Commentary/GSoCMultipleInstances
It's just that no one has time to do it. That's why I was raising it (again) to see if anyone has any bright ideas for un-gluing this particular log-jam.
Simon