According to a few articles I've read, cabal dependency hell is caused by installing packages with -o, which inlines code from dependant packages. Why isn't this avoided by installing packages without inlining? Packages could still be recompiled with -o in a cabal-dev sandbox, but the package repository would be free of dependency hell.