We also list, in Figure 4, the proof rules which define the reduction relation itself. For
the most part, these rules are reasonably straightforward. Two points of interest are:
– In the rule for generating new objects, the new object is always stored within the
same package as the class it is instantiating.
– The result of a method call is to inline the method body E, say, within the current
evaluation context. Note that before doing this E is wrapped with the coercion
E in p where p is the package of the receiver. This facilitates type-safe embedding
of external code within a package at runtime.