@ARTICLE{karl1:class,
AUTHOR = "Karl J. Lieberherr",
TITLE = "Object-oriented programming with class dictionaries",
VOLUME = 1,
NUMBER = 2,
YEAR = 1988,
JOURNAL = "Journal on Lisp and Symbolic Computation",
PAGES = "185-212"
}

Paper (in several formats).

Notes by Karl:

A class dictionary is tangling the structure, syntax
and formatting aspects. 
For a better way of organizing them, see:
ICSE 2004 keynote paper.

The object traversers are precursors of adaptive programming. They correspond to the traversal strategy: from * to *.