
And for the same reason we have "exposed" packages, it makes sense to have a default set of grafting locations per user/system (this is debatable; indeed sometimes I think we should remove "exposed" completely and force non-Cabal users to write -package flags).
I'm not sure what this "same reason" is - exposed packages are a reason to require a faithful module namespace, and default grafting locations would help provide that, is this it? I think another important reason to have the default locations is to make it easier to move code between projects. I asserted the importance of facilitating code-sharing to justify other parts of my proposal, but never mentioned this aspect - namely, if everyone had to choose their own grafting locations then it would make it much harder for people to share code. If you could graft a package at more than one point in the module namespace - which I think would be a good feature on its own - that could be a partial solution, but I think it would get rather messy if it had to be used all the time. Frederik -- http://ofb.net/~frederik/