Multiple Dispatch as Dispatch on Tuples
Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 1998), Vancouver, British Columbia, Canada, October 18-22, 1998.
Gary Leavens, Todd Millstein
Many popular object-oriented programming languages, such as C++,
Smalltalk-80, Java, and Eiffel, do not support multiple dispatch. Yet
without multiple dispatch, programmers find it difficult to express
binary methods and design patterns such as the "visitor"
pattern. We describe a new, simple, and orthogonal way to add
multimethods to single-dispatch object-oriented languages, without
affecting existing code. The new mechanism also clarifies many
differences between single and multiple dispatch.
[PDF]