1 * Things to think about
3 + Reorganize output protocol so that metaclasses can override the
4 layout. Split ~hook-output~ into a pair of generic functions: one
5 for walking the tree, which should continue to be
6 ~progn~-combination, and one for producing output, which subclasses
9 + Implement `indirect' slots and messages, which can be added (once a
10 class has declared support) /without/ breaking the class's ABI.
11 Indirect messages can be added to an indirect `vtmsgs' structure via
12 a pointer in the main vtable. Indirect slots must be added to a
13 region of the `ilayout' located via an offset stored in the vtable.
15 * Add `documentation' methods for all of the myriad kinds of things
16 that can be defined. A useful utility will find methods on a
17 generic function with an `eql'-specializer in some specified place.
19 * Define static initializers for class layouts which obviate the need