5  Adding Support for New Implementations

Broadly speaking, for purposes of porting there are four categories of Scheme module systems in current use:

Systems without modules always have some form of include file, and may also allow separate compilation, however all symbols share the same namespace. If you want to try to use these implementations with Common-Scheme you will have to choose your variable names carefully.

Interpreters with first class modules should generally have no problem porting the common-module form, since they can directly manipulate and query modules in macro expansions.

Systems whose modules are syntax can generally be extended by loading the common-module module first and then expanding into the native module syntax.

Schemes who use a module language separate from Scheme (like Common-Scheme itself) will either need for that language to support the common-module form natively or to use some form of trivial preprocessor.