Qualified Types: Theory and Practice

1. Introduction 2. Predicates 3. Type inference for qualified types 4. Evidence 5. Semantics and coherence 6. Theory into practice 7. Type classes in Haskell 8. Type classes in Gofer 9. Summary and future work 10. Epilogue Appendix References Index.

[1]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[2]  William A. Howard,et al.  The formulae-as-types notion of construction , 1969 .

[3]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[4]  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 .

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

[6]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[7]  J. Roger Hindley,et al.  To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism , 1980 .

[8]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[9]  Thomas Johnsson Efficient compilation of lazy evaluation , 1984, SIGP.

[10]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[11]  Lennart Augustsson,et al.  A compiler for lazy ML , 1984, LFP '84.

[12]  Dominique Clément,et al.  A simple applicative language: mini-ML , 1986, LFP '86.

[13]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[14]  Jon Fairbairn,et al.  TIM: A simple, lazy abstract machine to execute supercombinatorics , 1987, FPCA.

[15]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[16]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[17]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[18]  Peter Buneman,et al.  Type inference in a database programming language , 1988, LISP and Functional Programming.

[19]  John C. Mitchell,et al.  ML with extended pattern matching and subtypes , 1988, LISP and Functional Programming.

[20]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[21]  John C. Mitchell,et al.  Polymorphic Type Inference and Containment , 1988, Inf. Comput..

[22]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[23]  Peter Buneman,et al.  Static type inference for parametric classes , 1989, OOPSLA '89.

[24]  Stephen Blott,et al.  Implementing Haskell Type Classes , 1989, Functional Programming.

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

[26]  Atsushi Ohori,et al.  A simple semantics for ML polymorphism , 1989, FPCA.

[27]  J. Girard,et al.  Proofs and types , 1989 .

[28]  Prateek Mishra,et al.  Polymorphic Subtype Inference: Closing the Theory-Practice Gap , 1989, TAPSOFT, Vol.2.

[29]  Jerzy Tiuryn,et al.  Type Inference Problems: A Survey , 1990, MFCS.

[30]  Satish R. Thatte,et al.  Type Inference and Implicit Scaling , 1990, ESOP.

[31]  Robert Harper,et al.  Extensible records without subsumption , 1990 .

[32]  Giorgio Ghelli,et al.  Coherence of Subsumption , 1990, CAAP.

[33]  Carsten Kehler Holst,et al.  Improving Full Laziness , 1990, Functional Programming.

[34]  Jon G. Riecke,et al.  A Complete and Decidable Proof System for Call-by-Value Equalities (Preliminary Report) , 1990, ICALP.

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

[36]  Barney P. Hilken,et al.  Towards a categorical semantics of type classes , 1991, Fundam. Informaticae.

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

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

[39]  Tobias Nipkow,et al.  Type Classes and Overloading Resolution via Order-Sorted Unification , 1991, FPCA.

[40]  Xavier Leroy,et al.  Polymorphic type inference and assignment , 1991, POPL '91.

[41]  Geoffrey Smith,et al.  On the Complexity of ML Typability with Overloading , 1991, FPCA.

[42]  Satish R. Thatte Coercive Type Isomorphism , 1991, FPCA.

[43]  John C. Mitchell,et al.  Type inference with simple subtypes , 1991, Journal of Functional Programming.

[44]  Geoffrey Smith Polymorphic Type Inference for Languages with Overloading and Subtyping , 1991 .

[45]  Simon L. Peyton Jones,et al.  A modular fully‐lazy lambda lifter in Haskell , 1991, Softw. Pract. Exp..

[46]  Stefan Kaes Type inference in the presence of overloading, subtyping and recursive types , 1992, LFP '92.

[47]  Mark P. Jones Computing with Lattices: An Application of Type Classes , 1992, J. Funct. Program..

[48]  Philip Wadler,et al.  Comprehending monads , 1990, Mathematical Structures in Computer Science.

[49]  Andrew K. Wright Typing References by Effect Inference , 1992, ESOP.

[50]  Mark P. Jones Programming with Constructor Classes (Preliminary Summary) , 1992, Functional Programming.

[51]  Simon L. Peyton Jones,et al.  Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine , 1992, Journal of Functional Programming.

[52]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[53]  Martin Odersky Observers for Linear Types , 1992, ESOP.

[54]  Atsushi Ohori,et al.  A compilation method for ML-style polymorphic record calculi , 1992, POPL '92.

[55]  Mark P. Jones A Theory of Qualified Types , 1992, ESOP.

[56]  Mark P. Jones,et al.  Type inference for qualified types , 1994 .

[57]  William C. Frederick,et al.  A Combinatory Logic , 1995 .