The language Objective Caml possesses a rich class-based object oriented extension and a powerful higher-order module system. In this language, classes and modules are merely juxtaposed. However, these constructions share a lot of properties: they offer some kind of abstraction; they structure the code and facilitate its reuse. This sometimes makes it difficult to choose between them. This paper proposes a theoretical background for a system which provides only one structuring mechanism which can be used for both classes and modules.

Full paper [ps.gz]