gobblecr(define-class A () (a))(define-class B () (b))(define-class C () (c))(define-class D (A B) (d a))(define-class E (A C) (e c))(define-class F (D E) (f))
A, B, C have a null list of super classes. In this case, the system will replace it by the list which only contains ndexfile(index-entry "<object>" "tt" aux )<object>, the root of all the classes defined by ndexfile(index-entry "define-class" "tt" aux )define-class. D, E, F use multiple inheritance: each class inherits from two previously defined classes. Those class definitions define a hierarchy which is shown in Figure 1. In this figure, the class ndexfile(index-entry "<top>" "tt" aux )<top> is also shown; this class is the super class of all Scheme objects. In particular, ndexfile(index-entry "<top>" "tt" aux )<top> is the super class of all standard Scheme types.
The set of slots of a given class is calculated by ``unioning'' the slots of
all its super class. For instance, each instance of the class D, defined
before will have three slots (a, b and d). The slots of a class
can be obtained by the ndexfile(index-entry "class-slots" "tt" aux )class-slots primitive.
For instance,
unspecified
error
makeotherˆ`=̀13`
gobblecr(class-slots A) (a)(class-slots E) (a e c)(class-slots F) (d a b c f)
Note: The order of slots is not significant.