Class hierarchy and inheritance of slots

Inheritance is specified upon class definition. As said in the introduction, STKLOS supports multiple inheritance. Hereafter are some classes definition: $\Longrightarrow$
$\Longrightarrow$ unspecified error makeotherˆ`=̀13`

          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.

Figure: A class hierarchy
\begin{figure}\centerline{\psfig{figure={hierarchy.eps}}}\end{figure}

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, $\Longrightarrow$
$\Longrightarrow$ 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.