A type system for higher-order modules

We present a type theory for higher-order modules that accounts for many central issues in module system design, including translucency, applicativity, generativity, and modules as first-class values. Our type system harmonizes design elements from previous work, resulting in a simple, economical account of modular programming. The main unifying principle is the treatment of abstraction mechanisms as computational effects. Our language is the first to provide a complete and practical formalization of all of these critical issues in module system design.

[1]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[2]  Warren D. Goldfarb,et al.  The Undecidability of the Second-Order Unification Problem , 1981, Theor. Comput. Sci..

[3]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[4]  David B. MacQueen Using dependent types to express modular structure , 1986, POPL '86.

[5]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[6]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[7]  Luca Cardelli,et al.  The Modula–3 type system , 1989, POPL '89.

[8]  John C. Mitchell,et al.  Higher-order modules and the phase distinction , 1989, POPL '90.

[9]  Robin Milner,et al.  Definition of standard ML , 1990 .

[10]  Luca Cardelli,et al.  Abstract Types and the Dot Notation , 1990, Programming Concepts and Methods.

[11]  John C. Mitchell,et al.  An extension of standard ML modules with subtyping and inheritance , 1991, POPL '91.

[12]  Benjamin C. Pierce,et al.  Bounded quantification is undecidable , 1992, POPL '92.

[13]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[14]  Benjamin C. Pierce,et al.  Bounded Quantification is Undecidable , 1994, Inf. Comput..

[15]  Mads Tofte,et al.  A Semantics for Higher-Order Functors , 1994, ESOP.

[16]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[17]  Xavier Leroy,et al.  Applicative functors and fully transparent higher-order modules , 1995, POPL '95.

[18]  Xavier Leroy,et al.  A syntactic theory of type generativity and sharing , 1996, Journal of Functional Programming.

[19]  David Aspinall,et al.  Type systems for modular programs and specifications , 1997 .

[20]  M. Lillibridge Translucent Sums: A Foundation for Higher-Order Module Systems , 1997 .

[21]  Matthias Felleisen,et al.  Units: cool modules for HOT languages , 1998, PLDI.

[22]  Claudio V. Russo Types for Modules , 2004, Electronic Notes in Theoretical Computer Science.

[23]  Robert Harper,et al.  Transparent and Opaque Interpretations of Datatypes , 1998 .

[24]  Benjamin C. Pierce,et al.  Bounded Existentials and Minimal Typing , 1998, Theor. Comput. Sci..

[25]  Karl Crary,et al.  What is a recursive module? , 1999, PLDI '99.

[26]  Transparent Modules with Fully Syntactic Signatures , 1999, ICFP.

[27]  Zhong Shao Transparent modules with fully syntatic signatures , 1999, ICFP '99.

[28]  Robert Harper,et al.  Abstract 1 Introduction , 2022 .

[29]  R. Harper,et al.  Singleton kinds and singleton types , 2000 .

[30]  Robert Harper,et al.  A type-theoretic interpretation of standard ML , 2000, Proof, Language, and Interaction.

[31]  Claudio V. Russo First-Class Structures for Standard ML , 2000, Nord. J. Comput..

[32]  Xavier Leroy,et al.  A modular module system , 2000, J. Funct. Program..

[33]  Claudio V. Russo Recursive Structures for Standard ML , 2001, ICFP.

[34]  Todd D. Millstein,et al.  Modular typechecking for hierarchically extensible datatypes and functions , 2002, ICFP '02.

[35]  Derek Dreyer,et al.  A type system for higher-order modules , 2003, POPL '03.

[36]  Derek Dreyer,et al.  A type system for well-founded recursion , 2004, POPL.