The core global engine state. This includes all global definitions as well as any global state that
will persist for the whole session.
A runtime value stack used during evaluation
A delta (or change set) between the current global state and a possible future global state. Deltas
can be applied to the global state to update it to contain both previous state and the state held
within the delta.
A temporary extension to the global state. This handles bridging between the global state and the
additional declarations and scope changes that are not yet part of the global scope.
A temporary placeholder for expression types. It is used to keep track of the input types
for each expression in a pipeline
Organizes usage messages for various primitives
Tells whether a decl is visible or not