A semantics for higher-order functors

  • David B. MacQueen
  • Mads Tofte
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 788)

Abstract

Standard ML has a module system that allows one to define parametric modules, called functors. Functors are “first-order,” meaning that functors themselves cannot be passed as parameters or returned as results of functor applications. This paper presents a semantics for a higher-order module system which generalizes the module system of Standard ML. The higher-order functors described here are implemented in the current version of Standard ML of New Jersey and have proved useful in programming practice.

References

  1. 1.
    Maria-Virginia Aponte. Extending record typing to type parametric modules with sharing. In Twentieth Annual ACM Symp. on Principles of Prog. Languages, pages 465–478, New York, Jan 1993. ACM Press.Google Scholar
  2. 2.
    Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In Martin Wirsing, editor, Third Int'l Symp. on Prog. Lang. Implementation and Logic Programming, New York, August 1991. Springer-Verlag, (in press).Google Scholar
  3. 3.
    Pierre Crégut. Extensions to the sml module system. Rapport de Stage d'Ingenieur Eleve des Telecommunications, November 1992.Google Scholar
  4. 4.
    Robert Harper and Mark Lillibridge. A type-theoretic approach to higher-order modules with sharing. In Twenty First Annual ACM Symp. on Principles of Prog. Languages, New York, Jan 1994. ACM Press.Google Scholar
  5. 5.
    Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-order modules and the phase distinction. In Seventeenth Annual ACM Symp. on Principles of Prog. Languages, pages 341–354, New York, Jan 1990. ACM Press.Google Scholar
  6. 6.
    Xavier Leroy. Manifest types, modules, and separate compilation. In Twenty First Annual ACM Symp. on Principles of Prog. Languages, New York, Jan 1994. ACM Press.Google Scholar
  7. 7.
    David MacQueen. Modules for Standard ML. In Proc. 1984 ACM Conf. on LISP and Functional Programming, pages 198–207, New York, 1984. ACM Press.Google Scholar
  8. 8.
    David MacQueen. Using dependent types to express modular structure. In Thirteenth Annual A CM Symp. on Principles of Prog. Languages, pages 277–286, New York, Jan 1986. ACM Press.Google Scholar
  9. 9.
    Robin Milner and Mads Tofte. Commentary on Standard ML. MIT Press, Cambridge, Massachusetts, 1991.Google Scholar
  10. 10.
    Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. MIT Press, Cambridge, MA, 1990.Google Scholar
  11. 11.
    John C. Mitchell and Robert Harper. The essence of ML. In Fifteenth ACM Symp. on Principles of Programming Languages, pages 28–46, New York, 1988. ACM Press.Google Scholar
  12. 12.
    Didier Rémy. Typechecking records and variants in a natural extension of ml. In Sixteenth Annual ACM Symp. on Principles of Prog. Languages, pages 77–88, New York, Jan 1989. ACM Press.Google Scholar
  13. 13.
    Donald Sannella and Andrej Tarlecki. Extended ml: Past, present, and future. Technical Report ECS-LFCS-91-138, Laboratory for Foundations of Computer Science, University of Edinburgh, 1991.Google Scholar
  14. 14.
    Mads Tofte. Principal signatures for higher-order program modules. In Nineteenth Annual ACM Symp. on Principles of Prog. Languages, pages 189–199, New York, Jan 1992. ACM Press. (Extended version to appear in Journal of Functional Programming)Google Scholar

Copyright information

© Springer-Verlag 1994

Authors and Affiliations

  • David B. MacQueen
    • 1
  • Mads Tofte
    • 2
  1. 1.AT&T Bell LabsNew JerseyUSA
  2. 2.Dept. of Computer ScienceCopenhagen UniversityDenmark

Personalised recommendations