Modular statically typed multimethods

T Millstein, C Chambers - Information and Computation, 2002 - Elsevier
T Millstein, C Chambers
Information and Computation, 2002Elsevier
Multimethods offer several well-known advantages over the single dispatching of
conventional object-oriented languages, including a simple solution to the binary method
problem, a natural implementation of the strategy design pattern, and a form of open objects
that enables easy addition of new operations to existing classes. 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 …
Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the binary method problem, a natural implementation of the strategy design pattern, and a form of open objects that enables easy addition of new operations to existing classes. 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.
Elsevier