Terms
-----
"Object"
Any Scheme data object.
"Instance"
An instance of the OO system; an "object".
"Operation"
A METHOD.
_Notes:_
The object system supports multiple inheritance. An instance can
inherit from 0 or more ancestors. In the case of multiple
inherited operations with the same identity, the operation used is
that from the first ancestor which contains it (in the ancestor
`let'). An operation may be applied to any Scheme data
object--not just instances. As code which creates instances is
just code, there are no "classes" and no meta-ANYTHING. Method
dispatch is by a procedure call a la CLOS rather than by `send'
syntax a la Smalltalk.
_Disclaimer:_
There are a number of optimizations which can be made. This
implementation is expository (although performance should be quite
reasonable). See the L&FP paper for some suggestions.