monad library

Sven Panne
Tue, 29 Jul 2003 23:34:09 +0200

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:  :-)

> 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.