Modular Statically Typed Multimethods
Proceedings of the Thirteenth European Conference on Object-Oriented Programming (ECOOP 1999), Lisbon, Portugal, June 14-18, 1999.
Todd Millstein, Craig Chambers
Multimethods offer several well-known advantages over the single
dispatching of conventional object-oriented languages, including a
simple solution to the "binary method" problem, cleaner
implementations of the "visitor," "strategy," and similar design
patterns, and a form of "open objects." However, previous work on
statically typed multimethods whose arguments are treated
symmetrically has required the whole program to be available in
order to perform typechecking. We describe Dubious, a simple core
language including first-class generic functions with symmetric
multimethods, a classless object model, and modules that can be
separately typechecked. We identify two sets of restrictions that
ensure modular type safety for Dubious as well as an interesting
intermediate point between these two. We have proved each of these
modular type systems sound.
Superceded by this paper.