How does dependency hell happen in Cabal-install?
I read the following at Cabal/Survival - HaskellWiki:
1. What is the difficulty caused by C
The problem is that you cannot link your program against those different versions of package C. A and B have to find a common version of C to use the same implementation of a certain function. One solution to this problem is OSGi but requires stuff like Classloaders which can be used to load different versions of package C in the same process w/o conflicts.