
On Mon, Aug 18, 2008 at 8:07 PM, Sterling Clover
I tend to think this is a really bad idea. Although things get messy and there are plenty of corner cases, it seems to me the current system, haphazard as it is, is closer to the "right way." If, e.g., I want a Maybe transformer, I want to import it from Control.Monad.MaybeT, not from Lib.MaybeT. That way I can sort my imports sanely and see all my Control things in one place, no matter their provenance, all my data structures in another, be they from collections or bloom filters from hackage, etc.
Unless you're mechanically sorting your module imports, I don't see how the Lib names would prevent that. As far as Haskell is concerned, module names are entirely arbitrary.
The other problem is that either everything eventually goes under lib, which creates the same problem again, or there is an implicit set of exceptions for things which, although not part of the official libraries (which we're trying to reduce, remember) are obviously too "standard" for lib (e.g., HTTP, and such).
How does putting everything under Lib create the same problem again?
Hackage already forbids the multiple packages from having the same
name, so the reserved names for each package would be disjoint.
--
Dave Menendez