When defining the structure and relationships of modules this means at the same time that module dependencies are defined.
This is practically a tautology; a redundant fact: Those modules that a module needs to access, are also the modules that it depends on being available.
So to load a module (and resolve its dependecies), you would load it itself, then its parameter modules/imports, and then load its submodules into it recursively.
Example:
Morphic could contain several submodules, like basic morphs (Oval, Rectangle, Polygon) and pluggable widget morphs (PluggableListMorph, PlyggableTextMorph, whatever). It would also depend on the graphics subsystem (BitBlt, Form, DisplayScreen, etc.) and the events subsystem, neither of which is part of Morphic since they are UI-independent. So:
Morphic has several submodules: BasicMorphs, PluggableMorphs, WidgetMorphs, WindowMorphs (etc.). It also has imports: GraphicsCore, EventsCore (etc.).