Consider the modification of the geometry problem by also adding a mutable position in space to all shapes. A shape position in space depends of each shape object (it is not a class property). Thus, we would like to link the same EXTENDED_SHAPE object to its dispatch SHAPE object. In practice, this would mean that we are extending objects with new mutable attributes.
This goal is achieved through once("object") external dispatch classes.
External dispatch solution:
(Source code) (Compiled Eiffel code)
