CommonIndexedProcedure is a helper class intended to unify the interfaces
of fixable and non-fixable procedures, so that development of native
libraries is more consistent and flexible.
Fetches the nearest enclosing Interpreter that operates on a
given AppContext, if this is an internal call (that is, a call
from Java to Scheme in the contex of a Scheme->Java call).
Returns an Interpreter bound to the given AppContext with same
DynamicEnvironment as the nearest enclosing Interpreter in the
same thread that is bound to the same AppContext.
Calls caller with an Interpreter bound to the given AppContext
with same DynamicEnvironment as the nearest enclosing
Interpreter in the same thread that is bound to the same
AppContext.
A fixable procedure is a Scheme procedure similar to a NativeProcedure,
but which does not need access to the Interpreter to be implemented,
causes no side-effects, and requires three or fewer arguments.
Returns the currently set default AppContext, or creates
a new AppContext with default values if non was already set,
and attempts to initialize it with the default heap.
Defines a visitor interface for performing Java -> Scheme calls
in an 'atomic' fashion, where details of acquiring and releasing
the Interpreter context are done behind the scenes.