loading modules

rdt@cs.queensu.ca rdt@cs.queensu.ca
Thu, 06 Dec 2001 14:11:10 -0500


 > * When you evaluate an expression in the interpreter, it has to use some
 > symbol table for looking up the ids you use. What symbol table does it use?
 > The only credible alternatives are:
 >
 >     * The export list of the "current module" (see :module command) 
 >     * The symbol table of the "current module"
 >
 > Hugs uses the latter (which seems more useful) but you might reasonably
 > expect Hugs to use the export list and wonder why Hugs doesn't seem to
 > implement abstract data types correctly when you do experiments from the
 > command line.

This begs the question of exactly what it means to "load modules". The Hugs
documentation AFAIK seems to assume it's self-evident. But, as the "not a bug
it's a feature" message above makes clear, it isn't, even when just a single
module is loaded. I would have thought module loading could be defined in terms
of something *in* Haskell (as did presumably the bug reporters the message is
responding to); but at the moment the best that could be said is that module
loading is an undocumented hack.

Bob T.