Classical module systems support well the modular development of applications but do not offer the ability to add or replace
a method in a class that is not defined in that module. On the other hand, languages that support method addition and replacement
do not provide a modular view of applications, and their changes have a global impact. The result is a gap between module
systems for object-oriented languages on one hand, and the very desirable feature of method addition and replacement on the
other hand. To solve these problems we present classboxes, a module system for object-oriented languages that provides method addition and replacement. Moreover, the changes made
by a classbox are only visible to that classbox (or classboxes that import it), a feature we call local rebinding. To validate the model, we have implemented it in the Squeak Smalltalk environment, and performed experiments modularising
code.
Keywords language design - method lookup - modules - smalltalk - class extension - selector namespace