
"S. Alexander Jacobson"
With Cabal, if you download two packages, how do you know that they won't require conflicting versions of another module/package?
That's specified by the dreaded build-depends field, of course.
The reality is that, no matter what, you always have to assume that the user and author of a particular module/package need to live in basically the same universe of modules and packages.
The advantage of SearchPath over the status quo is that its module maps make this universe explicit and versionable rather than tacit and unidentifiable.
There you go again. (snip)
The implicit maps of Cabal's "build-depends" are an invitation for conflict.
What's implicit about build-depends again?
You have no particularly good reason to assume that any two packages will be compatible.
You don't have to assume anything. The packager tells you which packages are compatible. (snip)
SearchPath's explicit shared module maps makes it much less likely that author and user will end up with different meanings for a particular module name and make it much less likly that the user won't be able to resolve module dependencies, making code reuse much more likely.
You're comparing apples to oranges. Hackage (not cabal) ensures that the end user can resolve module dependencies. peace, isaac