The module system just described has been implemented in a
module-aware Java compiler coded in JastAdd \cite{jastadd},
an extensible aspect-oriented compiler framework. This forms
only the compile-time component of the module system. Run-time
loading is simulated by package name mangling. However,
we do not foresee any serious design faults that would preclude
the implementation of a run-time system using classloaders.

Module instantiation was implemented by mangling
the package names of the member classes for each instance of 
a module. An \textit{import own} generated a name prefixed by 
the importing instance's name, thereby ensuring the separation
of the namespaces of different instances of the same module.
The type lookups within the program were then pointed to the
name-mangled versions of the class to which they should resolve.

The implementation of the module system and the 
JHotdraw 7.1 case study are available at : 
\textit{http://progtools.comlab.ox.ac.uk/members/neil}

