
Iavor Diatchki wrote:
[...] my preference is to use the hirarchical module system to avoid name clashes rather than for classification purposes.
I think the whole point of the word "hierarchical" *is* classification. Otherwise we shouldn't use an ordered sequence of simple names for naming a module, but a set of names. Furthermore, for a larger API "collector modules" which simply group together related "sub-modules" (see Foreign, Control.Concurrent, ...) are very useful and a very natural place for an introductory documentation. Again a kind of classification...
and i don't think any hirarchy much deeper than about 4 would be practical, even with aliases.
From a user perspective, yes. But deeper hierarchies are sometimes useful for the implementation of larger APIs. And people in biology are quite happy with a *much* deeper hierarchy: :-) http://library.thinkquest.org/11771/english/hi/biology/taxonomy.shtml http://de.wikipedia.org/wiki/Systematik_(Biologie)
long names are good from software engineering perspective, but only up to a point. this is why i think it is appropriate for the monad library to be in Monad.*. [...]
Well, I don't think that additionally typing "Control." will kill anybody... :-) Even if that was the case: There are still the possibilities of aliases and home-grown modules with short names, which simply re-export other modules. Cheers, S.