ExportEnvironment has the attribute
HoldAll to prevent the evaluation of the symbols.
ExportEnvironment exports the following kinds of definitions:
OwnValues,
DownValues,
SubValues,
UpValues,
DefaultValues,
NValues.
ExportEnvironment sets the attributes of the remote symbols equal to the locally defined attributes, except for attributes such as
Protected and
Locked.
Any old definitions existing on the remote side are cleared before the new definitions are made.