Revamping the module hierarchy (was: ANNOUNCE: OpenGLRaw

Ian Lynagh igloo at
Fri Jun 19 11:38:18 EDT 2009

On Fri, Jun 19, 2009 at 02:44:25PM +0200, Johan Tibell wrote:
> The argument I was trying to make is for some sub-module hierarchies (e.g.
> HTTP) the word "network" communicates very little information and is thus
> superfluous.

I agree that by the time you reach "HTTP", "Network" is superfluous. But
the purpose of "Network" is to help the people looking for "OpenGL":
they know that they can ignore the "Network" hierarchy, and in doing so
they cut out a significant chunk of the search space in one go. They
don't want to have to look through all of "HTTP", "NNTP", "FTP", ...

> Also the deeper we make the hierarchy the more difficult it is
> to navigate it. Where would you expect to find a HTTP server module?
> Network.Protocol
> Network.Web
> Network.Asynchronous

If only one of those exists then there isn't a problem. The hierarchy is
to help people looking through a tree of available modules, e.g. the
haddock contents page.

I don't think that hierarchies are perfect, but I do think that human
brains work well with them; probably better than with other systems
which on paper ought to be better.


More information about the Libraries mailing list