Generalizers: New Metaobjects for Generalized Dispatch [article]

Christophe Rhodes, Jan Moringen, David Lichteblau
2014 arXiv   pre-print
This paper introduces a new metaobject, the generalizer, which complements the existing specializer metaobject. With the help of examples, we show that this metaobject allows for the efficient implementation of complex non-class-based dispatch within the framework of existing metaobject protocols. We present our modifications to the generic function invocation protocol from the Art of the Metaobject Protocol; in combination with previous work, this produces a fully-functional extension of the
more » ... isting mechanism for method selection and combination, including support for method combination completely independent from method selection. We discuss our implementation, within the SBCL implementation of Common Lisp, and in that context compare the performance of the new protocol with the standard one, demonstrating that the new protocol can be tolerably efficient.
arXiv:1403.2765v2 fatcat:rrgxsr2xefdg5a6hkc67ppwwom