At 14:22 -0500 2000.2.28, Norton, Chris wrote:
In addition to the other fine responses to your question (ProtoObject is the superclass of Object, et. al), I believe that people also define Proxy objects by subclassing nil (UndefinedObject), rather than Object. Proxy objects are common ...
Unfortunately, since UndefinedObject is itself a subclass of Object, making Proxy a subclass of UndefinedObject does not achieve the desired effect. (It does achieve one _undesired_ effect -- making all the Proxy objects print as nil!
I believe that the reasons for the creation of ProtoObject include the need to have a place to put Proxy objects that is not a subclass of Object. ObjectOut and ImageSegmentRootStub are two proxy objects in the image that are subclsses of ProxyObject. Marcel's Trampoline code should probably be modified so that Trampoline is a subclass of ProtoObject rather than UndefinedObject.