Résumé
Nous avons fait le tour dans ce chapitre des possibilités qu'offre
le langage de modules paramétrés d'Objective CAML.
Comme dans tout mécanisme de modules, on y retrouve la dualité
interface-implantation que l'on a renommée dualité
signature-structure. Elle permet le masquage de définitions de type,
d'exception ou de valeur.
En masquant la représentation des types, on obtient la définition
de types abstraits dont les valeurs sont manipulables uniquement avec
les moyens fournis dans la signature associée au module. On a vu comment
utiliser ce mécanisme pour faciliter le partage de valeurs cachées
entre fermetures ainsi que pour offrir plusieurs vues d'une même
structure. Dans ce dernier cas, il faut parfois avoir recours à des
indications explicites de partage de type.
Le mécanisme plus riche des modules paramétrés (ou foncteurs) nous a
permis d'illustrer comment réutiliser le code par un mécanisme
aussi simple que l'application d'une fonction.