hirarchical modules

Peter Simons simons@cryp.to
30 May 2003 01:49:18 +0200

 >> import Control.Monad.Experimental.Identity
 >> import Control.Monad.Experimental.StateT as S
 >> import Control.Monad.Experimental.Trans as T

I personally don't mind the typing much, that is the least of my
concerns. :-)

What "concerns" me though, is the fact that a module must know its own
place in the hierarchy. It must know it's "Foo.Bar.Me" rather than
just knowing it's "Me". This makes it hard to move modules, as has
been mentioned already, and it's information the module simply doesn't
_need_. So unless there is a technical necessity to reveal this
information -- and I wouldn't know any -- I'm all for getting rid of
specification of the full path.

By the way, C++'s namespaces have almost the same deficit and they
effectively failed to fulfill their purpose because of it. (I can
elaborate this, if anyone's interested in my opinion. I believe much
can be learned from C++'s strengths and weaknesses today.)