
"Conal Elliott"
I'd prefer more discussion about when to make new root names, when to wedge things into the existing hierarchy, and when to create new root names, under which to add projects ( e.g. DSEL).
I belive the primary - and perhaps only justifiable - purpose of the hierarchy is to avoid namespace collisions. A new root is a good choice when you have a library that has a distinct name (like "ForSyDe", or, for that matter "Parsec"), and includes cross-hierarchy functionality.
I have doubts about whether module hierarchy is workable in general. Maybe we could come up with something better.
Here's an essay about categorizing stuff: http://www.shirky.com/writings/ontology_overrated.html The short version is that any hierarchy is going to have problems, and nobody (except in the physical world) is browsing a hierarchy anyway, they just enter terms in search fields. So a wide/shallow hierarchy incurs no additional cost, and reduces at least some of the problems compared to a narrow/deep one. -k -- If I haven't seen further, it is by standing in the footprints of giants