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