mainGlobal : object
We use this so that we don't require the reflection module to be included. If the module isn't included, this will be nil, so we'll know not to use reflection. If this is not nil, we'll know we can use reflection services.
The restart ID is the only information that survives across a restart boundary. Other than this, entering via a restart is exactly like loading the program from scratch; all other information about the program state before the restart is lost in the restart operation.