# Initialization

The order of execution of the modules in a program is constrained by the following rule:

If module `M` depends on module `N` and `N` does not depend on `M`, then `N`'s body will be executed before `M`'s body, where:

- A module `M` depends on a module `N` if `M` uses an interface that `N` exports or if `M` depends on a module that depends on `N`.
- A module `M` uses an interface `I` if `M` imports or exports `I` or if `M` uses an interface that imports `I`.

Except for this constraint, the order of execution is implementation-dependent.

    Last modified on Wed Apr  3 09:39:04 PST 1996 by heydon
         modified on Mon Apr 18 13:28:21 PDT 1994 by kalsow