Parametricity and Unboxing with Unpointed Types

In lazy functional languages, ⊥ is typically an element of every type. While this provides great flexibility, it also comes at a cost. In this paper we explore the consequences of allowing unpointed types in a lazy functional language like Haskell. We use the type (and class) system to keep track of pointedness, and show the consequences for parametricity and for controlling evaluation order and unboxing.

[1]  Fritz Henglein,et al.  Formally optimal boxing , 1994, POPL '94.

[2]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[3]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[4]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[5]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[6]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[7]  Andrew M. Pitts,et al.  Relational Properties of Domains , 1996, Inf. Comput..

[8]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[9]  Xavier Leroy,et al.  Unboxed objects and polymorphic typing , 1992, POPL '92.

[10]  Philip Wadler,et al.  Projections for strictness analysis , 1987, FPCA.

[11]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[12]  David A. Schmidt Denotational Semantics: A Methodology for Language Development by Phil , 1987 .

[13]  Stefan Kaes,et al.  Parametric Overloading in Polymorphic Programming Languages , 1988, ESOP.

[14]  Peter Thiemann,et al.  Unboxed values and polymorphic typing revisited , 1995, FPCA '95.

[15]  Philip Wadler,et al.  How to make ad-hoc polymorphism less ad hoc , 1989, POPL '89.

[16]  Ross Paterson,et al.  Compiling Laziness Using Projections , 1996, SAS.

[17]  Brian T. Howard Inductive, coinductive, and pointed types , 1996, ICFP '96.

[18]  Simon L. Peyton Jones,et al.  Unboxed Values as First Class Citizens in a Non-Strict Functional Language , 1991, FPCA.