Type isomorphisms for module signatures

  • María -Virginia Aponte
  • Roberto Di Cosmo
Tools and Programming Environments
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1140)


This work focuses on software reuse for languages equipped with a module system. To retrieve modules from a library, it is quite reasonable to use module signatures as a search key, up to a suitable notion of signature isomorphism.

We study a formal notion of isomorphism for module signatures, which naturally extends the notion of isomorphism for types in functional languages. Isomorphisms between module types surprisingly have nontrivial interactions with the theory of isomorphisms of the base language to which the module system is added. We investigate the power of this notion in equating module signatures, and we study its decidability. This work does not impose any limitative assumption on the module system as we handle type declarations in signatures, type sharing and higher order modules.


typing and structuring systems programming environments module systems ML retrieval of functions in function libraries 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    María Virginia Aponte. Extending records typing to type parametric modules with sharing. In 20th symposium on Principles of Programming Languages, 1993.Google Scholar
  2. 2.
    Roberto Di Cosmo. Type isomorphisms in a type assignment framework. In 19th Ann. ACM Symp. on Principles of Programming Languages (POPL), pages 200–210. ACM, 1992.Google Scholar
  3. 3.
    Roberto Di Cosmo. Isomorphisms of types: from λ-calculus to information retrieval and language design. Birkhauser, 1995. ISBN-0-8176-3763-X.Google Scholar
  4. 4.
    Roberto Di Cosmo. Second order isomorphic types. A proof theoretic study on second order λ-calculus with surjective pairing and terminal object. Information and Computation, pages 176–201, June 1995.Google Scholar
  5. 5.
    Robert Harper, Robin Milner, and Mads Tofte. A type discipline for program modules. In Theory and Practice of Programming Languages, volume 250 of Lecture Notes in Computer Science. Springer Verlag, 1987.Google Scholar
  6. 6.
    Xavier Leroy. Manifest types, modules, and separate compilation. In 21st symposium on Principles of Programming Languages, pages 109–122. ACM Press, January 1994.Google Scholar
  7. 7.
    Xavier Leroy. A syntactic approach to type generativity and sharing (extended abstract). In Record of the 1994 ACM-SIGPLAN Workshop on ML and its Applications, pages 1–12. INRIA, June 1994.Google Scholar
  8. 8.
    Xavier Leroy. Applicative functors and fully transparent higher-order modules. In 22nd symposium on Principles of Programming Languages. ACM Press, January 1995.Google Scholar
  9. 9.
    Xavier Leroy. The Caml Special Light system. Technical report, INRIA, Roquencourt, Le Chesnay Cedex 78153, France, 1995. Available as ftp://ftp.inria.fr/lang/caml-light/csl*.Google Scholar
  10. 10.
    Xavier Leroy. The Objective Caml reference manual. Technical report, INRIA, Roquencourt, Le Chesnay Cedex 78153, France, 1996. Available as ftp://ftp.inria.fr/lang/caml-light/ocaml*.Google Scholar
  11. 11.
    David MacQueen. Modules for standard ML. In ACM Symposium on Lisp and Functional Programming, 1984.Google Scholar
  12. 12.
    Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. The MIT Press, 1990.Google Scholar
  13. 13.
    Departement of Defense DoD. Ada reference manual. 1983.Google Scholar
  14. 14.
    Patrick Parot. Automatisation d'une bibliothèque de modules. In Journées Francophones des Langages Applicatifs, pages 75–98, 1995.Google Scholar
  15. 15.
    Mikael Rittri. Searching program libraries by type and proving compiler correctness by bisimulation. PhD thesis, University of Göteborg, Göteborg, Sweden, 1990.Google Scholar
  16. 16.
    Mikael Rittri. Using types as search keys in function libraries. Journal of Functional Programming, 1(1):71–89, 1991.Google Scholar
  17. 17.
    Pierre Weis and Xavier Leroy. Le langage Caml. InterÉditions, 1993.Google Scholar
  18. 18.
    Amy Moormann Zaremsky and Jeannette M. Wing. Signature matching: a key to reuse. In SIGSOFT, December 1993. Also available as CMU-CS-93-151, May 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • María -Virginia Aponte
    • 1
  • Roberto Di Cosmo
    • 2
  1. 1.CNAM Conservatoire National des Arts et MétiersParisFrance
  2. 2.DMI-LIENS (CNRS URA 1347) Ecole Normale SupérieureParis Cedex 05France

Personalised recommendations