This paper proposes a code reuse mechanism called module embedding that enables the building of new modules from existing ones through inheritance, overriding of procedures, and overriding of types; the paper also describes an implementation scheme for this mechanism. Module embedding is beneficial when modules and classes are used in combination and need to be extended together, or when modules are more appropriate medium than classes.
Radenski, A. Module Embedding. Software - Concepts and Tools, Vol. 19, Issue 3, 1998, Springer, 122-129.