## Plan of the Chapter

The first section compares the functional/modular model and the object
model. This comparison brings out the particular features of each
model, in order to show how many of them may be translated by hand
into the other model. One can thus simulate inheritance with modules
and use classes to implement simple modules. The limitations of each
model are then reviewed. The second section is concerned with the
problem of extensibility for data structures and methods, and proposes
a solution which mixes the two models. The third section describes
some other combinations of the two models by the use of abstract
module types for objects.