import file-name ((export? prefixed by prefix) | export? unprefixed | only) ( (export? use declared-name (as new-name)?) |(export? use #conversion-functions)? |(supply declared-name (as required-name)?))*
import to import a module into the current module or program. Some or all of the
exported items in the module are processed as though they were declared
at the point of the import declaration.
prefixed by is used, all exported items not specifically named
use clause have the given prefix prepended to their name in the
importing module or program.
unprefixed is used, all exported items not specifically mentioned
use clause will be known in the importing program or module by
the name they were given in the module being imported.
only is used, exported items not specifically mentioned in a
use clause are not imported.
You can choose to import specific functionality by means of a
use clause with
You can rename imported items with a
use clause. Avoid naming collisions by specifically re-naming imported items that
conflict with previously defined named items in the importing module or
use #conversion-functions indicates that all of the exported
conversion functions defined in a module should be exported. This is
the default behavior with
prefixed by and
unprefixed, and so is
only necessary when
only has been specified.
supply clauses to provide items that the module has declared as
required. These are in effect parameters to the module.
You can re-export imported items by using
export in the import declaration. Put
export in front of
prefixed by or
unprefixed to re-export all imported items that have not been named in a
use clause. Put it in front of
use to re-export particular imported items.
; plain old import import "my-module.xmd" unprefixed ; all imported items have "my." prepended except "write" has been renamed import "my-module" prefixed by my. use write as output ; supply a stream global (that the module requires), and only import the ;execute function global stream this-stream import "other-module.xmd" only supply this-stream as shared-stream use execute