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.