Common Lisp the Language, 2nd Edition
 
 
 
  
  
  
  
 

The implementation of the Object System manipulates classes, methods, and generic
functions.  The meta-object protocol specifies a set of generic
functions defined by methods on classes; the behavior of those generic
functions defines the behavior of the Object System.  The instances of the classes
on which those methods are defined are called meta-objects.  Programming
at the meta-object protocol level involves defining new classes of
meta-objects along with methods specialized on these classes.
