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:
This is derived from the Dylan language documents by Kim Barrett et al.: A Monotonic Superclass Linearization for Dylan Retrieved from: http://18.104.22.168/dylan/linearization-oopsla96.html