While dynamic linking has become an integral part of the run-time execution
of modern programming languages, there is increasing recognition of the ne
ed for support for hot swapping of running modules, particularly in long-li
ved server applications. The interesting challenge for such a facility is t
o allow the new module to change the types exported by the original module,
while preserving type safety. This paper describes a type-based approach t
o hot swapping running modules. The approach is based on a reflective mecha
nism for dynamically adding type sharing constraints to the type system, re
alized by programmer-defined version adapters in the run-time.