eieio: Method Invocation

 
 7 Method Invocation
 *******************
 
 When classes are defined, you can specify the
 ‘:method-invocation-order’.  This is a feature specific to EIEIO.
 
    This controls the order in which method resolution occurs for
 ‘:primary’ methods in cases of multiple inheritance.  The order affects
 which method is called first in a tree, and if ‘call-next-method’ is
 used, it controls the order in which the stack of methods are run.
 
    The original EIEIO order turned out to be broken for multiple
 inheritance, but some programs depended on it.  As such this option was
 added when the default invocation order was fixed to something that made
 more sense in that case.
 
    Valid values are:
 
 ‘:breadth-first’
      Search for methods in the class hierarchy in breadth first order.
      This is the default.
 ‘:depth-first’
      Search for methods in the class hierarchy in a depth first order.
 ‘:c3’
      Searches for methods in a linearized way that most closely matches
      what CLOS does when a monotonic class structure is defined.
 
      This is derived from the Dylan language documents by Kim Barrett et
      al.: A Monotonic Superclass Linearization for Dylan Retrieved from:
      http://192.220.96.201/dylan/linearization-oopsla96.html