Higher-order modules and the phase distinction

In earlier work, we used a typed function calculus, XML, with dependent types to analyze several aspects of the Standard ML type system. In this paper, we introduce a refinement of XML with a clear compile-time/run-time phase distinction, and a direct compile-time type checking algorithm. The calculus uses a finer separation of types into universes than XML and enforces the phase distinction using a nonstandard equational theory for module and signature expressions. While unusual from a type-theoretic point of view, the nonstandard equational theory arises naturally from the well-known Grothendieck construction on an indexed category.

[1]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

[2]  K. Brown,et al.  Graduate Texts in Mathematics , 1982 .

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

[4]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[5]  John C. Mitchell,et al.  The Semantics of Second-Order Lambda Calculus , 1990, Inf. Comput..

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

[7]  Bengt Nordström,et al.  Programming in Martin-Lo¨f's type theory: an introduction , 1990 .

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

[9]  Butler W. Lampson,et al.  A Kernel Language for Abstract Data Types and Modules , 1984, Semantics of Data Types.

[10]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[11]  Per Martin-Löf,et al.  Intuitionistic type theory , 1984, Studies in proof theory.

[12]  J. Girard Une Extension De ĽInterpretation De Gödel a ĽAnalyse, Et Son Application a ĽElimination Des Coupures Dans ĽAnalyse Et La Theorie Des Types , 1971 .

[13]  Luca Cardelli,et al.  Phase Distinctions in Type Theory , 1988 .

[14]  John C. Mitchell,et al.  The essence of ML , 1988, POPL '88.

[15]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[16]  M. Tofte Operational Semantics and Polymorphic Type Inference , 1988 .

[17]  Eugenio Moggi,et al.  A category-theoretic account of program modules , 1989, Mathematical Structures in Computer Science.

[18]  TAPSOFT '87 , 1987, Lecture Notes in Computer Science.

[19]  Robin Milner,et al.  A Type Discipline for Program Modules , 1987, TAPSOFT, Vol.2.

[20]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[21]  R. Lathe Phd by thesis , 1988, Nature.