Difference between revisions of "Research papers/Type systems"
Jump to navigation
Jump to search
DonStewart (talk | contribs) (more papers) |
DonStewart (talk | contribs) (+papers) |
||
Line 23: | Line 23: | ||
:SL Peyton Jones and J Launchbury, Functional Programming Languages and Computer Architecture (FPCA'91), Boston, LNCS 523, Springer Verlag, Sept 1991, pp636-666. |
:SL Peyton Jones and J Launchbury, Functional Programming Languages and Computer Architecture (FPCA'91), Boston, LNCS 523, Springer Verlag, Sept 1991, pp636-666. |
||
− | == |
+ | ==Module system== |
+ | |||
+ | ;[http://www.cse.ogi.edu/~diatchki/papers/modules98.pdf A Formal Specification of the Haskell 98 Module System] |
||
+ | :Iavor S. Diatchki, Mark P. Jones, and Thomas Hallgren. Proceedings of the 2002 ACM SIGPLAN workshop on Haskell. Pittsburgh, Pennsylvania. 17 - 28 2002 ISBN 1-58113-605-6 |
||
;[http://research.microsoft.com/~simonpj/Papers/first-class-modules/index.htm First class modules for Haskell] |
;[http://research.microsoft.com/~simonpj/Papers/first-class-modules/index.htm First class modules for Haskell] |
||
Line 69: | Line 72: | ||
;[http://www.cse.unsw.edu.au/~chak/papers/SCK04.html Optimising Embedded DSLs using Template Haskell] |
;[http://www.cse.unsw.edu.au/~chak/papers/SCK04.html Optimising Embedded DSLs using Template Haskell] |
||
:Sean Seefried, Manuel M. T. Chakravarty, and Gabriele Keller. In Gabor Karsai and Eelco Visser, editors, Third International Conference on Generative Programming and Component Engineering (GPCE'04), LNCS 3286, Springer-Verlag, pages 186-205, 2004. [An earlier draft was presented at the IFL 2003 - 15th International Workshop on the Implementation of Functional Languages, 2003. |
:Sean Seefried, Manuel M. T. Chakravarty, and Gabriele Keller. In Gabor Karsai and Eelco Visser, editors, Third International Conference on Generative Programming and Component Engineering (GPCE'04), LNCS 3286, Springer-Verlag, pages 186-205, 2004. [An earlier draft was presented at the IFL 2003 - 15th International Workshop on the Implementation of Functional Languages, 2003. |
||
+ | |||
+ | ;[http://www.haskell.org/th/papers/Unrolling_and_Simplifying_Expressions_with_Template_Haskell.ps Unrolling and Simplifying Expressions with Template Haskell] |
||
+ | :Ian Lynagh, May 2003. |
||
+ | |||
+ | ;[http://www.haskell.org/th/papers/hlpp.ps Automatic skeletons in Template Haskell] |
||
+ | :Kevin Hammond, Jost Berthold and Rita Loogen, June 2003. Proceedings of 2003 Workshop on High Level Parallel Programming, Paris, France |
||
+ | |||
+ | ;[http://www.haskell.org/th/papers/Typing_Template_Haskell__Soft_Types.ps Typing Template Haskell: Soft Types] |
||
+ | :Ian Lynagh, August 2004. |
||
+ | |||
+ | ==Dyanmic typing== |
||
+ | |||
+ | ;[http://www.cs.uu.nl/groups/ST/stbib/swierstra-by-year/BaSw02.bib Typing dynamic typing] |
||
+ | :A. I. Baars and S. D. Swierstra. In S. Peyton Jones, editor, Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, pages 157--166. ACM Press, 2002 |
||
==Parametricity== |
==Parametricity== |
||
Line 103: | Line 120: | ||
;[http://homepages.inf.ed.ac.uk/wadler/papers/class/class.ps.gz How to make ad-hoc polymorphism less ad hoc] |
;[http://homepages.inf.ed.ac.uk/wadler/papers/class/class.ps.gz How to make ad-hoc polymorphism less ad hoc] |
||
:Philip Wadler and Stephen Blott. 16'th Symposium on Principles of Programming Languages, ACM Press, Austin, Texas, January 1989. |
:Philip Wadler and Stephen Blott. 16'th Symposium on Principles of Programming Languages, ACM Press, Austin, Texas, January 1989. |
||
+ | |||
+ | ;[http://citeseer.ifi.unizh.ch/laeufer95type.html Type Classes with Existential Types] |
||
+ | :Konstantin Laufer, Journal of Functional Programming, 1996, May |
||
+ | |||
+ | ;[http://citeseer.ist.psu.edu/laufer94combining.html Combining Type Classes and Existential Types] |
||
+ | :Konstantin Laufer, Proceedings of the Latin American Informatic Conference (PANEL), 1994 |
||
===Applications of type classes=== |
===Applications of type classes=== |
||
Line 111: | Line 134: | ||
;[http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/typecase.pdf TypeCase: a design pattern for type-indexed functions] |
;[http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/typecase.pdf TypeCase: a design pattern for type-indexed functions] |
||
:Bruno C. d. S. Oliveira, Jeremy Gibbons. Proceedings of the 2005 ACM SIGPLAN workshop on Haskell. Tallinn, Estonia. 98 - 109, 2005 ISBN:1-59593-071-X |
:Bruno C. d. S. Oliveira, Jeremy Gibbons. Proceedings of the 2005 ACM SIGPLAN workshop on Haskell. Tallinn, Estonia. 98 - 109, 2005 ISBN:1-59593-071-X |
||
+ | |||
+ | ;[http://okmij.org/ftp/Haskell/types.html#Prepose Functional pearl: implicit configurations--or, type classes reflect the values of types] |
||
+ | :Oleg Kiselyov, Chung-chieh Shan, Proceedings of the 2004 ACM SIGPLAN workshop on Haskell, Snowbird, Utah, USA, 2004 ISBN 1-58113-850-4 |
||
+ | |||
+ | ;[http://www.comp.nus.edu.sg/~sulzmann/extract-typeclassproofs.pdf Extracting Programs from Type Class Proofs] |
||
+ | :Martin Sulzmann, 2006 |
||
+ | |||
+ | ;[http://www.comp.nus.edu.sg/~sulzmann/popl06-type-class-proofs.ps Co-induction and Type Improvement in Type Class Proofs] |
||
+ | :Martin Sulzmann, Jeremy Wazny and Peter J. Stuckey. 2005 |
||
+ | |||
+ | ==Multi-parameter type classes== |
||
+ | |||
+ | ;[http://www.comp.nus.edu.sg/~sulzmann/mptc-inf.pdf Type Inference for Multi-Parameter Type Classes] |
||
+ | :Martin Sulzmann and Peter J. Stuckey. 2006 |
||
==Functional dependencies== |
==Functional dependencies== |
||
+ | |||
+ | ;[http://www.cse.ogi.edu/~mpj/pubs/fundeps.html Type Classes with Functional Dependencies] |
||
⚫ | |||
;[http://research.microsoft.com/~simonpj/Papers/fd-chr/index.htm Sound and Decidable Type Inference for Functional Dependencies] |
;[http://research.microsoft.com/~simonpj/Papers/fd-chr/index.htm Sound and Decidable Type Inference for Functional Dependencies] |
||
:Gregory J. Duck, Simon Peyton Jones, Peter J. Stuckey, and Martin Sulzmann, European Symposium on Programming 2004 (ESOP'04). |
:Gregory J. Duck, Simon Peyton Jones, Peter J. Stuckey, and Martin Sulzmann, European Symposium on Programming 2004 (ESOP'04). |
||
− | ;[http://www. |
+ | ;[http://www.comp.nus.edu.sg/~sulzmann/jfp-fds-revised.pdf Understanding Functional Dependencies via Constraint Handling Rules] |
+ | :Martin Sulzmann, Gregory J. Duck, Simon Peyton-Jones and Peter J. Stuckey.j To appear in Journal of Functional Programming. 2006 |
||
⚫ | |||
+ | |||
+ | ;[http://www.comp.nus.edu.sg/~sulzmann/afds.ps Associated Functional Dependencies] |
||
+ | :Martin Sulzmann and Edmund Soon Lee Lam. 2005 |
||
==Generalised Algebraic Data Types== |
==Generalised Algebraic Data Types== |
||
Line 127: | Line 170: | ||
;[http://www.cis.upenn.edu/~geoffw/research/papers/MS-CIS-05-26.pdf Wobbly types: type inference for generalised algebraic data types] |
;[http://www.cis.upenn.edu/~geoffw/research/papers/MS-CIS-05-26.pdf Wobbly types: type inference for generalised algebraic data types] |
||
:S Peyton Jones, G. Washburn, and S. Weirich. 2004. |
:S Peyton Jones, G. Washburn, and S. Weirich. 2004. |
||
+ | |||
+ | ;[http://www.comp.nus.edu.sg/~sulzmann/simple-translate-gadts.ps Translating Generalized Algebraic Data Types to System F] |
||
+ | :Martin Sulzmann and Meng Wang. 2005 |
||
==Associated types== |
==Associated types== |
||
Line 141: | Line 187: | ||
;[http://www.cse.unsw.edu.au/~chak/papers/SCP06.html System F with Type Equality Coercions] |
;[http://www.cse.unsw.edu.au/~chak/papers/SCP06.html System F with Type Equality Coercions] |
||
:Martin Sulzmann, Manuel M. T. Chakravarty, and Simon Peyton Jones. |
:Martin Sulzmann, Manuel M. T. Chakravarty, and Simon Peyton Jones. |
||
+ | |||
+ | ==Arbitrary-rank polymorphism== |
||
+ | |||
+ | ;[http://www.ubka.uni-karlsruhe.de/vvv/1996/informatik/81/81.pdf.gz Putting type annotations to work] |
||
+ | :Martin Odersky and Konstantin Läufer. Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages. St. Petersburg Beach, Florida, United States. 54 - 67 1996 ISBN 0-89791-769-3 |
||
==Phantom types== |
==Phantom types== |
||
;[http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cis/TR2003-1901 First-class phantom types] |
;[http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cis/TR2003-1901 First-class phantom types] |
||
− | :James Cheney and Ralf Hinze. |
+ | :James Cheney and Ralf Hinze. Technical Report TR2003-1901, Cornell University, 2003. |
==Implicit parameters== |
==Implicit parameters== |
||
Line 151: | Line 202: | ||
;[http://www.cs.chalmers.se/~rjmh/Globals.ps Global variables in Haskell] |
;[http://www.cs.chalmers.se/~rjmh/Globals.ps Global variables in Haskell] |
||
:John Hughes. J. Funct. Program. 14(5): 489-502 (2004) |
:John Hughes. J. Funct. Program. 14(5): 489-502 (2004) |
||
+ | |||
+ | ;[http://www.cs.uu.nl/pub/RUU/CS/techreps/CS-2004/2004-059.pdf Explicit Implicit Parameters] |
||
+ | :A. Dijkstra and S. D. Swierstra. UU-CS 2004-059, 2004. |
||
==Object oriented Haskell== |
==Object oriented Haskell== |
Revision as of 02:26, 10 April 2006
Haskell semantics
- A static semantics for Haskell, SL Peyton Jones and PL Wadler
- unpublished draft, Department of Computing Science, University of Glasgow, 1992.
- Typing Haskell in Haskell
- Mark P. Jones, In Proceedings of the 1999 Haskell Workshop, Paris, France, October 1999. Published in Technical Report UU-CS-1999-28, Department of Computer Science, University of Utrecht.
Pure type systems
- Henk: a typed intermediate language
- SL Peyton Jones and E Meijer, Proceedings of the Types in Compilation Workshop, Amsterdam, June 1997.
Unboxed values
- Parametricity and Unboxing with Unpointed Types
- John Launchbury and Ross Paterson, European Symposium on Programming, LNCS, vol. 1058, pp. 204-218, Springer, Linkping, Sweden, 1996.
- Unboxed values as first class citizens
- SL Peyton Jones and J Launchbury, Functional Programming Languages and Computer Architecture (FPCA'91), Boston, LNCS 523, Springer Verlag, Sept 1991, pp636-666.
Module system
- A Formal Specification of the Haskell 98 Module System
- Iavor S. Diatchki, Mark P. Jones, and Thomas Hallgren. Proceedings of the 2002 ACM SIGPLAN workshop on Haskell. Pittsburgh, Pennsylvania. 17 - 28 2002 ISBN 1-58113-605-6
- First class modules for Haskell
- Mark Shields and Simon Peyton Jones; FOOL'02.
- An exploration of modular programs
- Electronic proceedings of the 1996 Glasgow Functional Programming Workshop, J Nicklisch and SL Peyton Jones, Ullapool, July 1996.
Exceptions
- Imprecise Exceptions, Co-Inductively
- Andy Moran, Soeren Lassen, and Simon Peyton Jones. HOOTS'99.
- A semantics for imprecise exceptions
- Simon Peyton Jones, Alastair Reid, Tony Hoare, Simon Marlow, Fergus Henderson. Proc Programming Language Design and Implementation (PLDI'99), Atlanta.
- Asynchronous exceptions in Haskell
- Simon Marlow, Simon Peyton Jones, Andy Moran and John Reppy, PLDI'01.
- Handling Exceptions in Haskell
- A. Reid, Research Report YALEU/DCS/RR-1175, Yale University, August, 1998
Records
- Lightweight Extensible Records for Haskell
- Mark Jones and Simon Peyton Jones, Haskell Workshop 1999.
- Extensible records with scoped labels
- Daan Leijen. The 2005 Symposium on Trends in Functional Programming (TFP'05), Tallin, Estonia, September 2005.
- First-class labels for extensible rows
- Daan Leijen. Technical Report UU-CS-2004-51, Departement of Computer Science, Universiteit Utrecht, 2004.
- Haskell Records
- J. Peterson, A. Reid, Proceedings of the Haskell Workshop, La Jolla, June 1995.
Meta programming
- Dynamic typing as staged type inference
- MB Shields, T Sheard, and SL Peyton Jones, POPL98.
- Template meta-programming for Haskell
- Tim Sheard and Simon Peyton Jones, Proceedings of the Haskell Workshop, Pittsburgh, 2002
- Optimising Embedded DSLs using Template Haskell
- Sean Seefried, Manuel M. T. Chakravarty, and Gabriele Keller. In Gabor Karsai and Eelco Visser, editors, Third International Conference on Generative Programming and Component Engineering (GPCE'04), LNCS 3286, Springer-Verlag, pages 186-205, 2004. [An earlier draft was presented at the IFL 2003 - 15th International Workshop on the Implementation of Functional Languages, 2003.
- Unrolling and Simplifying Expressions with Template Haskell
- Ian Lynagh, May 2003.
- Automatic skeletons in Template Haskell
- Kevin Hammond, Jost Berthold and Rita Loogen, June 2003. Proceedings of 2003 Workshop on High Level Parallel Programming, Paris, France
- Typing Template Haskell: Soft Types
- Ian Lynagh, August 2004.
Dyanmic typing
- Typing dynamic typing
- A. I. Baars and S. D. Swierstra. In S. Peyton Jones, editor, Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, pages 157--166. ACM Press, 2002
Parametricity
- Theorems for free!
- Philip Wadler. 4'th International Conference on Functional Programming and Computer Architecture, London, September 1989.
Type classes
- Functional Programming with Overloading and Higher-Order Polymorphism
- Mark P. Jones, First International Spring School on Advanced Functional Programming Techniques, Baastad, Sweden, Springer-Verlag Lecture Notes in Computer Science 925, May 1995.
- Type classes: exploring the design space
- Simon Peyton Jones, Mark Jones, Erik Meijer, Haskell Workshop 1997.
- Type classes in Haskell, CV Hall, K Hammond, SL Peyton Jones, and PL Wadler
- European Symposium On Programming, LNCS 788, Springer Verlag, pp. 241-256, April 1994.
- Derivable Type classes, Ralf Hinze and Simon Peyton Jones
- Haskell Workshop 2000.
- Implementing Haskell overloading
- Lennart Augustsson, 1993. FPCA. 65-73
- A system of constructor classes: overloading and implicit higher-order polymorphism
- Mark P. Jones, In FPCA '93: Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 1993.
- Implementing Type Classes
- John Peterson and Mark P. Jones, In Proceedings of ACM SIGPLAN Symposium on Programming Language Design and Implementation, ACM SIGPLAN, June 1993.
- A second look at overloading
- Martin Odersky, Philip Wadler, Martin Wehr. 7'th International Conference on Functional Programming and Computer Architecture, ACM Press, San Diego, California, June 1995.
- How to make ad-hoc polymorphism less ad hoc
- Philip Wadler and Stephen Blott. 16'th Symposium on Principles of Programming Languages, ACM Press, Austin, Texas, January 1989.
- Type Classes with Existential Types
- Konstantin Laufer, Journal of Functional Programming, 1996, May
- Combining Type Classes and Existential Types
- Konstantin Laufer, Proceedings of the Latin American Informatic Conference (PANEL), 1994
Applications of type classes
- Number-parameterized types
- Oleg Kiselyov, The Monad.Reader. IssueFive. Oct 2nd, 2005
- TypeCase: a design pattern for type-indexed functions
- Bruno C. d. S. Oliveira, Jeremy Gibbons. Proceedings of the 2005 ACM SIGPLAN workshop on Haskell. Tallinn, Estonia. 98 - 109, 2005 ISBN:1-59593-071-X
- Functional pearl: implicit configurations--or, type classes reflect the values of types
- Oleg Kiselyov, Chung-chieh Shan, Proceedings of the 2004 ACM SIGPLAN workshop on Haskell, Snowbird, Utah, USA, 2004 ISBN 1-58113-850-4
- Extracting Programs from Type Class Proofs
- Martin Sulzmann, 2006
- Co-induction and Type Improvement in Type Class Proofs
- Martin Sulzmann, Jeremy Wazny and Peter J. Stuckey. 2005
Multi-parameter type classes
- Type Inference for Multi-Parameter Type Classes
- Martin Sulzmann and Peter J. Stuckey. 2006
Functional dependencies
- Type Classes with Functional Dependencies
- Mark P. Jones, In Proceedings of the 9th European Symposium on Programming, ESOP 2000, Berlin, Germany, March 2000, Springer-Verlag LNCS 1782.
- Sound and Decidable Type Inference for Functional Dependencies
- Gregory J. Duck, Simon Peyton Jones, Peter J. Stuckey, and Martin Sulzmann, European Symposium on Programming 2004 (ESOP'04).
- Understanding Functional Dependencies via Constraint Handling Rules
- Martin Sulzmann, Gregory J. Duck, Simon Peyton-Jones and Peter J. Stuckey.j To appear in Journal of Functional Programming. 2006
- Associated Functional Dependencies
- Martin Sulzmann and Edmund Soon Lee Lam. 2005
Generalised Algebraic Data Types
- Simple unification-based type inference for GADTs
- Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, and Geoffrey Washburn. Submitted to PLDI 2005
- Wobbly types: type inference for generalised algebraic data types
- S Peyton Jones, G. Washburn, and S. Weirich. 2004.
- Translating Generalized Algebraic Data Types to System F
- Martin Sulzmann and Meng Wang. 2005
Associated types
- Associated types with class
- Manuel M. T. Chakravarty, Gabriele Keller, Simon Peyton Jones, Simon Marlow) POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of programming languages, pages 1--13, Long Beach, California, USA, ACM Press, 2005
- Associated Type Synonyms
- Manuel M. T. Chakravarty, Gabriele Keller, and Simon Peyton Jones. In Proceedings of The Tenth ACM SIGPLAN International Conference on Functional Programming, ACM Press, pages 241-253, 2005.
- ML Modules and Haskell Type Classes: A Constructive Comparison
- Stefan Wehr Diplomarbeit. Albert-Ludwigs-Universitt Freiburg, Fakultt fr Angewandte Wissenschaften, Institut fr Informatik, November 2005.
- System F with Type Equality Coercions
- Martin Sulzmann, Manuel M. T. Chakravarty, and Simon Peyton Jones.
Arbitrary-rank polymorphism
- Putting type annotations to work
- Martin Odersky and Konstantin Läufer. Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages. St. Petersburg Beach, Florida, United States. 54 - 67 1996 ISBN 0-89791-769-3
Phantom types
- First-class phantom types
- James Cheney and Ralf Hinze. Technical Report TR2003-1901, Cornell University, 2003.
Implicit parameters
- Global variables in Haskell
- John Hughes. J. Funct. Program. 14(5): 489-502 (2004)
- Explicit Implicit Parameters
- A. Dijkstra and S. D. Swierstra. UU-CS 2004-059, 2004.
Object oriented Haskell
- Object-Oriented Style Overloading for Haskell
- Mark Shields and Simon Peyton Jones; BABEL workshop '01.
- Interfacing Haskell with Object-Oriented Languages
- Andr T. H. Pang and Manuel M. T. Chakravarty. In Greg Michaelson and Phil Trinder, editors, Implementation of Functional Languages: 15th International Workshop, IFL 2003, Edinburgh, UK, September 8-11, 2003, Revised Papers, LNCS 3145, Springer-Verlag, pages 20-36, 2004.
- Haskell++: An Object-Oriented Extension of Haskell
- Jan Sparud and John Hughes. Haskell Workshop 1995
- Haskell's overlooked object system
- Oleg Kiselyov and Ralf Lämmel, submitted for journal publication; online since 30 Sep. 2004;
Restricted Datatypes
- Restricted datatypes
- John Hughes. 1999 Haskell workshop
Pattern matching
Pattern guards
- Pattern Guards and Transformational Patterns
- Martin Erwig and Simon Peyton Jones; Haskell Workshop 2000.
Views
- Views: An Extension to Haskell Pattern Matching
- Warren Burton, Erik Meijer, Patrick Sansom, Simon Thompson and Phil Wadler.
- Views: A way for pattern matching to cohabit with data abstraction
- POPL 14 (1987), 307-313.