Difference between revisions of "Research papers"

From HaskellWiki
Jump to navigation Jump to search
(More papers)
(+GADTs, and new assoc. types paper)
Line 32: Line 32:
 
;[ftp://ftp.cs.chalmers.se/pub/cs-reports/papers/jfp-interactive.ps.Z The interactive Lazy ML System]
 
;[ftp://ftp.cs.chalmers.se/pub/cs-reports/papers/jfp-interactive.ps.Z The interactive Lazy ML System]
 
:Lennart Augustsson, J. Funct. Program. 3(1): 77-92 (1993)
 
:Lennart Augustsson, J. Funct. Program. 3(1): 77-92 (1993)
 
===Weak pointers===
 
   
 
;[http://research.microsoft.com/~simonpj/Papers/weak.htm Stretching the storage manager: weak pointers and stable names in Haskell]
 
;[http://research.microsoft.com/~simonpj/Papers/weak.htm Stretching the storage manager: weak pointers and stable names in Haskell]
Line 207: Line 205:
 
;[http://haskell.org/ghc/docs/papers/core.ps.gz An External Representation for the GHC Core Language]
 
;[http://haskell.org/ghc/docs/papers/core.ps.gz An External Representation for the GHC Core Language]
 
:Andrew Tolmach
 
:Andrew Tolmach
  +
  +
;[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.
   
 
===Compilation by transformation===
 
===Compilation by transformation===
Line 388: Line 389:
 
:Mark P. Jones, In Proceedings of the 9th European Symposium on Programming, ESOP 2000, Berlin, Germany, March 2000, Springer-Verlag LNCS 1782.
 
:Mark P. Jones, In Proceedings of the 9th European Symposium on Programming, ESOP 2000, Berlin, Germany, March 2000, Springer-Verlag LNCS 1782.
   
===Object oriented Haskell===
+
===Generalised Algebraic Data Types===
   
;[http://research.microsoft.com/~simonpj/Papers/oo-haskell/index.htm Object-Oriented Style Overloading for Haskell]
+
;[http://research.microsoft.com/~simonpj/papers/gadt/index.htm Simple unification-based type inference for GADTs]
  +
:Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, and Geoffrey Washburn. Submitted to PLDI 2005
:Mark Shields and Simon Peyton Jones; BABEL workshop '01.
 
   
;[http://www.cse.unsw.edu.au/~chak/papers/PC03.html Interfacing Haskell with Object-Oriented Languages]
+
;[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.
: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.
 
 
;[ftp://ftp.cs.chalmers.se/pub/cs-reports/papers/sparud/haskell++.ps.gz Haskell++: An Object-Oriented Extension of Haskell]
 
:Jan Sparud and John Hughes. Haskell Workshop 1995
 
   
 
===Associated types===
 
===Associated types===
Line 409: Line 407:
 
;[http://www.informatik.uni-freiburg.de/~wehr/diplom ML Modules and Haskell Type Classes: A Constructive Comparison]
 
;[http://www.informatik.uni-freiburg.de/~wehr/diplom 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.
 
:Stefan Wehr Diplomarbeit. Albert-Ludwigs-Universitt Freiburg, Fakultt fr Angewandte Wissenschaften, Institut fr Informatik, November 2005.
  +
  +
;[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.
   
 
===Phantom types===
 
===Phantom types===
Line 419: Line 420:
 
;[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)
  +
  +
===Object oriented Haskell===
  +
  +
;[http://research.microsoft.com/~simonpj/Papers/oo-haskell/index.htm Object-Oriented Style Overloading for Haskell]
 
:Mark Shields and Simon Peyton Jones; BABEL workshop '01.
  +
  +
;[http://www.cse.unsw.edu.au/~chak/papers/PC03.html 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.
  +
 
;[ftp://ftp.cs.chalmers.se/pub/cs-reports/papers/sparud/haskell++.ps.gz Haskell++: An Object-Oriented Extension of Haskell]
 
:Jan Sparud and John Hughes. Haskell Workshop 1995
   
 
===Restricted Datatypes===
 
===Restricted Datatypes===
Line 585: Line 597:
   
 
;[http://foxnet.cs.cmu.edu/people/cokasaki/papers.html#priority Optimal Purely Functional Priority Queues]
 
;[http://foxnet.cs.cmu.edu/people/cokasaki/papers.html#priority Optimal Purely Functional Priority Queues]
:Gerth St�lting Brodal and Chris Okasaki, Journal of Functional Programming, 6(6), December 1996.
+
:Gerth Stølting Brodal and Chris Okasaki, Journal of Functional Programming, 6(6), December 1996.
   
 
===Trees===
 
===Trees===

Revision as of 09:51, 8 April 2006

A lot of documentation exists about Haskell, and its foundations, in the form of research papers written by those investigating language design. And it is this enormous research effort that goes into making Haskell such a sane language. In general, if a feature is not well understood, it isn't going to become part of the language.

Here is a selection of those papers, with the goal of making the wealth of material published on Haskell more available to the casual user, and not just researchers. Some of the papers are highly technical, others, not so. These papers are not suitable for those trying to learn the language from scratch, but more for those looking for a deeper understanding of the theoretical and practical aspects of Haskell.

If you know of Haskell (or related) papers that are missing, please add them. There's a lot out there.

Functional programming

Why Functional Programming Matters
John Hughes. Comput. J. 32(2): 98-107 (1989)
Wearing the hair shirt: a retrospective on Haskell
Simon Peyton Jones. Slides of an invited talk at POPL'03.
A HOT opportunity
Philip Wadler. Journal of Functional Programming, 7(2):127--128, March 1997.

Runtime Systems

Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine
SL Peyton Jones, Journal of Functional Programming 2(2), Apr 1992, pp127-202.
How to make a fast curry: push/enter vs eval/apply
Simon Marlow and Simon Peyton Jones, Proc International Conference on Functional Programming, Snowbird, Sept 2004, pp4-15.
The New GHC/Hugs Runtime System
Simon Marlow and Simon Peyton Jones. (Unpublished.)
The interactive Lazy ML System
Lennart Augustsson, J. Funct. Program. 3(1): 77-92 (1993)
Stretching the storage manager: weak pointers and stable names in Haskell
Simon Peyton Jones, Simon Marlow, and Conal Elliott. Proc Workshop on Implementing Functional Languages, 1999.

Optimistic Evaluation

Optimistic Evaluation: an adaptive evaluation strategy for non-strict programs
Robert Ennals and Simon Peyton Jones, Proc ACM International Conference on Functional Programming, Uppsala, Aug 2003 (ICFP'03).

Profiling

Formally-based profiling for higher-order functional languages
PM Sansom and SL Peyton Jones, ACM Transactions on Programming Languages and Systems, 19(2), March 1997, pp 334-385.
Time and space profiling for non-strict functional languages
P Sansom and SL Peyton Jones, 22nd ACM Symposium on Principles of Programming Languages (POPL'95), San Francisco, Jan 1995, pp355-366.
Execution profiling for non-strict functional languages
P Sansom, PhD thesis, University of Glasgow, Nov 1994.

Garbage collection

Exploring the Barrier to Entry: Incremental Generational Garbage Collection for Haskell
Andy Cheadle, Tony Field, Simon Marlow, Simon Peyton Jones, and Lyndon While, International Symposium on Memory Management, Vancouver, 2004.
Non-stop Haskell
Andy Cheadle, Tony Field, Simon Marlow, Simon Peyton Jones, and Lyndon While. ICFP 2000.
Generational garbage collection for Haskell
P Sansom and SL Peyton Jones Proc Functional Programming Languages and Computer Architecture (FPCA'93), Copenhagen, June 1993, pp106-116.
An Incremental Garbage Collector for Embedded Real-Time Systems,
Malcolm Wallace and Colin Runciman. Proceedings of Chalmers Winter Meeting, June 1993.
Fixing some space leaks with a garbage collector
Philip Wadler. Software Practice and Experience, 17(9):595-608, September 1987.

Dynamic linking

Plugging Haskell In
Andre Pang, Don Stewart, Sean Seefried, and Manuel M. T. Chakravarty. In Proceedings of the ACM SIGPLAN Workshop on Haskell, pages 10-21. ACM Press, 2004
Dynamic Applications From the Ground Up
Don Stewart and Manuel M. T. Chakravarty. In Proceedings of the ACM SIGPLAN Workshop on Haskell, pages 27-38. ACM Press, 2005.

Loop detection

A Loop-detecting Interpreter for Lazy, Higher-order Programs
Alex Ferguson and John Hughes. The 1992 Glasgow Workshop on Functional Programming. 85-101

Paralllel and Concurrent Haskell

Concurrency

Extending the Haskell Foreign Function Interface with Concurrency
Simon Marlow, Simon Peyton Jones, and Wolfgang Thaller, Proceedings of the Haskell Workshop, Snowbird, Sept 2004.
Concurrent Haskell
SL Peyton Jones, A Gordon, S Finne, 23rd ACM Symposium on Principles of Programming Languages, St Petersburg Beach, Florida, Jan 1996, pp295-308.
Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell
In "Engineering theories of software construction", ed Tony Hoare, Manfred Broy, Ralf Steinbruggen, IOS Press, ISBN 1 58603 1724, 2001, pp47-96.
Developing a high-performance web server in Concurrent Haskell
Simon Marlow. Journal of Functional Programming, 12(4+5):359--374, July 2002

Parallel Haskell

Haskell on a Shared-Memory Multiprocessor
Tim Harris, Simon Marlow, Simon Peyton Jones) Haskell '05: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, pages 49--61, Tallinn, Estonia, ACM Press, September 2005

Software Transactional Memory

Composable Memory Transactions
Tim Harris, Simon Marlow, Simon Peyton Jones, Maurice Herlihy. PPoPP'05: ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Chicago, Illinois, June 2005
Lock Free Data Structures using STMs in Haskell
Anthony Discolo, Tim Harris, Simon Marlow, Simon Peyton Jones, Satnam Singh) FLOPS 2006: Eighth International Symposium on Functional and Logic Programming, Fuji Susono, JAPAN, April 2006

Compiler technology

Compiler Analyses

CPR

Constructed Product Result Analysis for Haskell
Clem Baker-Finch, Kevin Glynn, and Simon Peyton Jones, Journal of Functional Programming 14(2), March 2004, pp 211-245.

Usage analysis

Simple Polymorphic Usage Analysis
Keith Wansbrough (2002), PhD thesis, Computer Laboratory, University of Cambridge.
Simple Usage Polymorphism
Keith Wansbrough and Simon Peyton Jones; Workshop on Types In Compilation 2000.
Once Upon a Polymorphic Type
Keith Wansbrough and Simon Peyton Jones, POPL'99.

Inlining

Secrets of the Glasgow Haskell Compiler inliner
Simon Peyton Jones and Simon Marlow. IDL'99; revised version Journal of Functional Programming 12(4), July 2002, pp393-434.

Laziness

Avoiding Unnecessary Updates
John Hughes, John Launchbury, Andy Gill, Simon Marlow, Simon Peyton Jones, and Philip Wadler. 1993 Glasgow Workshop on Functional Programming.

Strictness

Implementing Projection-based Strictness Analysis
Ryszard Kubiak, John Hughes, John Launchbury. Functional Programming 1991: 207-224
Projections for Polymorphic First-Order Strictness Analysis
John Hughes, John Launchbury. Mathematical Structures in Computer Science 2(3): 301-326 (1992)
the effectiveness of a simple strictness analyser
SL Peyton Jones and WD Partain, Functional Programming, Glasgow 1993, ed Hammond and O'Donnell, Springer Verlag Workshops in Computing, 1993, pp201-220.
Compiling Laziness using Projections
Ross Paterson, Static Analysis Symposium, LNCS, vol. 1145, pp. 255-269, Springer, Aachen, Germany, 1996.
Projection-based Strictness Analysis - Theoretical and Practical Aspects
Ralf Hinze. Inauguraldissertation, Universitt Bonn, November 1995.
Strictness analysis aids time analysis
Philip Wadler. 15'th ACM Symposium on Principles of Programming Languages, San Diego, California, January 1988.
Strictness analysis on non-flat domains (by abstract interpretation over finite domains)
Philip Wadler. Chapter in Samson Abramsky and Chris Hankin, editors, Abstract Interpretation, Ellis Horwood, 1987.

Abstract interpretation

Fast Abstract Interpretation Using Sequential Algorithms
John Hughes and Alex Ferguson. The Workshop on Static Analysis, WSA 1993: 45-59

Lambda lifting

A modular fully-lazy lambda lifter in Haskell
SL Peyton Jones and D Lester, Software Practice and Experience 21(5), May 1991, pp479-506.

Let floating

Let-floating: moving bindings to give faster programs
(ICFP '96), SL Peyton Jones, WD Partain, A Santos, Proc International Conference on Functional Programming, Philadelphia (ICFP'96), May 1996.

Deforestation

Cheap deforestation for non-strict functional languages
A Gill, PhD thesis, University of Glasgow, Jan 1996.
A short cut to deforestation
A Gill, SL Peyton Jones, J Launchbury, Proc Functional Programming Languages and Computer Architecture (FPCA'93), Copenhagen, June 1993, pp223-232.
Deforestation: transforming programs to eliminate trees
Philip Wadler. Theoretical Computer Science, (Special issue of selected papers from 2'nd European Symposium on Programming), 73: 231-248, 1990.

Compiler construction

The Glasgow Haskell compiler: a technical overview
SL Peyton Jones, CV Hall, K Hammond, WD Partain, PL Wadler, Proceedings of Joint Framework for Information Technology Technical Conference, Keele, March 1993, pp249-257.

Intermediate languages

Henk: a typed intermediate language
SL Peyton Jones and E Meijer, Proceedings of the Types in Compilation Workshop, Amsterdam, June 1997.
Bridging the gulf: a common intermediate language for ML and Haskell
SL Peyton Jones, J Launchbury, MB Shields, and AP Tolmach, POPL98.
An External Representation for the GHC Core Language
Andrew Tolmach
System F with Type Equality Coercions
Martin Sulzmann, Manuel M. T. Chakravarty, and Simon Peyton Jones.

Compilation by transformation

A transformation-based optimiser for Haskell
SL Peyton Jones and A Santos, Science of Computer Programming 32(1-3), pp3-47, September 1998.
Compiling Haskell by program transformation: a report from the trenches
SL Peyton Jones Proc European Symposium on Programming (ESOP'96), Linkping, Sweden, Springer Verlag LNCS 1058, Jan 1996.
Compilation by transformation in non-strict functional languages
A Santos, PhD thesis, University of Glasgow, Sept 1995.
Playing by the rules: rewriting as a practical optimisation technique in GHC
Simon Peyton Jones, Andrew Tolmach and Tony Hoare, Haskell Workshop 2001.
Transforming Lazy Functions using Comportment Properties
Ross Paterson, Programming Languages: Implementations, Logics and Programs, LNCS, vol. 1292, pp. 111-125, Springer, Southampton, UK, 1997.

Type systems

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.

Generic programming

Scrap your boilerplate: a practical approach to generic programming
Ralf Laemmel and Simon Peyton Jones, Proc ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI 2003), New Orleans, pp26-37, Jan 2003.
Scrap more boilerplate: reflection, zips, and generalised casts
Ralf Laemmel and Simon Peyton Jones. appeared in Proceedings of ICFP 2004, ACM Press
Scrap your boilerplate with class: extensible generic functions
Ralf Laemmel and Simon Peyton Jones. appeared in Proceedings of ICFP 2005, ACM Press
"Scrap Your Boilerplate" Reloaded
Ralf Hinze, Andres Lh and Bruno C. d. S. Oliveira. In Philip Wadler and Masimi Hagiya, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), 24-26 April 2006, Fuji Susono, Japan.
Generics for the masses
Ralf Hinze. In Kathleen Fisher, editor, Proceedings of the 2004 International Conference on Functional Programming, Snowbird, Utah, September 19-22, 2004.
A Lightweight Implementation of Generics and Dynamics
James Cheney and Ralf Hinze. In Manuel Chakravarty, editor, Proceedings of the ACM SIGPLAN 2002 Haskell Workshop, Pittsburgh, PA, USA, October 3, 2002, pp 90-104.
Type-indexed data types
Ralf Hinze, Johan Jeuring, Andres Lh. In Eerke Boiten, Bernhard Mller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), Dagstuhl, Germany, July 8-10, 2002. Lecture Notes in Computer Science 2386, pp. 148-174.
Memo functions, polytypically!
Ralf Hinze. In Johan Jeuring, editor, Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6th July 2000.
Efficient Generalized Folds
Ralf Hinze. In Johan Jeuring, editor, Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6th July 2000.
Polytypic values possess polykinded types
Ralf Hinze. In Roland Backhouse, J.N. Oliveira, editors, Proceedings of the Fifth International Conference on Mathematics of Program Construction (MPC 2000), Ponte de Lima, Portugal, July 3-5, 2000.
A New Approach to Generic Functional Programming
Ralf Hinze. In Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts, January 19-21, 2000.
Polytypic Programming with Ease
Ralf Hinze. In 4th Fuji International Symposium on Functional and Logic Programming (FLOPS'99), Tsukuba, Japan, November 1999, pp. 21-36. Lecture Notes in Computer Science 1722.
A Generic Programming Extension for Haskell
Ralf Hinze. In Erik Meijer, editor, Proceedings of the Third Haskell Workshop, Paris, France, September 1999. The proceedings appear as a technical report of Universiteit Utrecht, UU-CS-1999-28.
Polytypic Functions Over Nested Datatypes
Ralf Hinze. In Rafael Dueire Lins, editor, 3rd Latin-American Conference on Functional Programming (CLaPF'99), March 1999.
Generic Programs and Proofs
Ralf Hinze. Habilitationsschrift, Universitt Bonn, October 2000.
Generic Haskell: Applications
Ralf Hinze and Johan Jeuring. Technical Report UU-CS-2003-16, Department of Computer Science, Utrecht University, 2003.
Type-indexed data types
Ralf Hinze, Johan Jeuring, and Andres Lh. Technical Report UU-CS-2002-11, Department of Computer Science, Utrecht University, 2002.
Combining generics and dynamics
Peter Achten and Ralf Hinze. Technical Report NIII-R0206, Nijmegen Institute for Computing and Information Sciences, University of Nijmegen, July 2002.
Generic Haskell: a language for generic programming
Johan Jeuring et al

Modules

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.

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.

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.

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.

Functional dependencies

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).
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.

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.

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.

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)

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

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.

Monads

Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell
In "Engineering theories of software construction", ed Tony Hoare, Manfred Broy, Ralf Steinbruggen, IOS Press, ISBN 1 58603 1724, 2001, pp47-96.
State in Haskell
SL Peyton Jones and J Launchbury, Lisp and Symbolic Computation 8(4), Dec 1995, pp293-341.
Lazy functional state threads
SL Peyton Jones and J Launchbury, SIGPLAN Symposium on Programming Language Design and Implementation (PLDI'94), Orlando, June 1994, pp24-35.
Imperative functional programming
SL Peyton Jones and PL Wadler, 20th ACM Symposium on Principles of Programming Languages (POPL'93), Charleston, Jan 1993, pp71-84.
Deriving Backtracking Monad Transformers
Ralf Hinze. In Phil Wadler, editor, Proceedings of the 2000 International Conference on Functional Programming, Montreal, Canada, September 18-20, 2000.
Prological features in a functional setting - axioms and implementations
Ralf Hinze. In Masahiko Sato, Yoshihito Toyama, editors, Third Fuji International Symposium on Functional and Logic Programming (FLOPS'98), Kyoto University, Japan, April 1998, pp. 98-122. World Scientific, Singapore, New Jersey, London, Hong Kong.
Deriving monad transformers
Ralf Hinze. Technical Report IAI-TR-99-1, Institut fr Informatik III, Universitt Bonn, January 1999.
Monadic-style backtracking
Ralf Hinze. Technical Report IAI-TR-96-9, Institut fr Informatik III, Universitt Bonn, October 1996.
Monad Transformers and Modular Interpreters
Sheng Liang, Paul Hudak, and Mark P. Jones, In Conference Record of POPL'95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, CA, January 1995
Composing Monads
Mark P. Jones and Luc Duponcheel Research Report YALEU/DCS/RR-1004, Yale University, New Haven, Connecticut, USA, December 1993.
The marriage of effects and monads
Philip Wadler and Peter Thiemann. Submitted to ACM Transactions on Computational Logic.
How to declare an imperative
Philip Wadler. ACM Computing Surveys, 29(3):240--263, September 1997. A shorter version was an invited paper at ILPS 95, appearing in John Lloyd, editor, International Logic Programming Symposium, MIT Press, December 1995.
Monads and composable continuations
Philip Wadler. Lisp and Symbolic Computation, Special issue on continuations, 7(1):39-56, January 1994.
Monads for functional programming
Philip Wadler. In M. Broy, editor, Marktoberdorf Summer School on Program Design Calculi, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, Advanced Functional Programming, Springer Verlag, LNCS 925, 1995.
Comprehending monads
Philip Wadler. Mathematical Structures in Computer Science, Special issue of selected papers from 6'th Conference on Lisp and Functional Programming, 2:461-493, 1992.
Combining monads
David King and Philip Wadler. Glasgow Workshop on Functional Programming, Springer Verlag Workshops in Computing Series, Ayr, July 1992.
The essence of functional programming
Philip Wadler. Invited talk, 19'th Symposium on Principles of Programming Languages, ACM Press, Albuquerque, January 1992.

Arrows

Arrows

Generalising Monads to Arrows,
John Hughes, in Science of Computer Programming 37, pp67-111, May 2000. (draft online)
A New Notation for Arrows
Ross Paterson. In ICFP 2001, Firenze, Italy, pp229-240]
Arrows and Computation
Ross Paterson, in The Fun of Programming (Jeremy Gibbons and Oege de Moor, Eds.), pp201-222, Palgrave, 2003.

Applications of arrows

Genuinely Functional User Interfaces
Anthony Courtney and Conal Elliott, in Haskell Workshop 2001, Firenze, Italy, pp41-69.
Arrows, Robots, and Functional Reactive Programming
Paul Hudak, Henrik Nilsson, Anthony Courtney and Jon Peterson, in Advanced Functional Programming, 4th International School, (Johan Jeuring and Simon Peyton Jones eds.), Oxford, Springer LNCS 2638, 2003.
Polytypic compact printing and parsing
Patrik Jansson and Johan Jeuring, In Proceedings European Symposium on Programming, LNCS 1576, pp273-287, Springer, 1999.
Polytypic data conversion programs
Patrik Jansson and Johan Jeuring, Science of Computer Programming 43(1), pp35-75, 2002.
Hyperfunctions
Sava Krstic, John Launchbury and Dusko Pavlovic, Workshop on Fixed Points in Computer Science, Sep 2001.
Functional Reactive Programming, Continued
Henrik Nilsson, Antony Courtney, and John Peterson. Proceedings of the 2002 ACM SIGPLAN Haskell Workshop (Haskell'02), pages 51 - 64, Pittsburgh, Pennsylvania, USA, October 2002. ACM Press.

Arrow theory

Categories for Computation in Context and Unified Logic
Richard Blute, J.R.B. Cockett and R.A.G. Seely. In Journal of Pure and Applied Algebra 116:49-98, 1997.
Premonoidal Categories and Notions of Computation
John Power and Edmund Robinson. In Mathematical Structures in Computer Science 7(5):453-468, 1997.
Environments, Continuation Semantics and Indexed Categories
John Power and Hayo Thielecke. In Proc. Theoretical Aspects of Computer Science, LNCS 1281, pp 391-414, 1997.
Closed Freyd- and kappa-categories
John Power and Hayo Thielecke. ICALP'99, LNCS 1644, Springer, 1999.

Data Structures

Functional pearl: Trouble shared is trouble halved
Richard Bird and Ralf Hinze. In Johan Jeuring, editor, Proceedings of the ACM SIGPLAN 2003 Haskell Workshop, Uppsala, Sweden, August 28, 2003, pp 1-6.
Manufacturing datatypes
Ralf Hinze. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 1-16.

Lists

The concatenate vanishes
Philip Wadler. Note. December 1987
Purely Functional Random-Access Lists
Chris Okasaki. Functional Programming Languages and Computer Architecture, June 1995, pages 86-95.

Arrays

An Approach to Fast Arrays in Haskell
Manuel M. T. Chakravarty and Gabriele Keller. In Johan Jeuring and Simon Peyton Jones, editors, lecture notes for The Summer School and Workshop on Advanced Functional Programming 2002. LNCS 2638, Springer-Verlag, pages 27-58, 2003.
Functional Array Fusion
Manuel M. T. Chakravarty and Gabriele Keller. In Xavier Leroy, editor, Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming, ACM Press, pp205-216, 2001.
Bootstrapping One-sided Flexible Arrays
Ralf Hinze. In Simon Peyton Jones, editor, Proceedings of the 2002 International Conference on Functional Programming, Pittsburgh, PA, USA, October 4-6, 2002, pp. 2-13.
Numerical Representations as Higher-Order Nested Datatypes
Ralf Hinze. Technical Report IAI-TR-98-12, Institut fr Informatik III, Universitt Bonn, December 1998.
A new array operation
Philip Wadler. Proceedings of the Workshop on Graph Reduction, Santa Fe, New Mexico, J. Fasel and R. Keller, editors, Springer-Verlag, October 1986.
A randomized implementation of multiple functional arrays
Tyng-Ruey Chuang, In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, pages 173-184. Orlando, Florida, USA, June 1994.

Queues

A Simple Implementation Technique for Priority Search Queues
Ralf Hinze. In Xavier Leroy, editor, Proceedings of the 2001 International Conference on Functional Programming, Firenze, Italy, September 3-5, 2001.
Simple and Efficient Purely Functional Queues and Deques
Chris Okasaki. Journal of Functional Programming, 5(4):583-592, October 1995.
Optimal Purely Functional Priority Queues
Gerth Stølting Brodal and Chris Okasaki, Journal of Functional Programming, 6(6), December 1996.

Trees

Constructing red-black trees
Ralf Hinze. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 89-99. The proceedings appear as a technical report of Columbia University, CUCS-023-99.
Perfect trees and bit-reversal permutations
Ralf Hinze. Technical Report IAI-TR-99-4, Institut fr Informatik III, Universitt Bonn, March 1999.

Tries

Generalizing Generalized Tries
Ralf Hinze. Technical Report IAI-TR-98-11, Institut fr Informatik III, Universitt Bonn, November 1998.

Graphs

Structuring Depth First Search Algorithms in Haskell
David King and John Launchbury. Proc. ACM Principles of Programming Languages, San Francisco, 1995.
Graph Algorithms with a Functional Flavour
John Launchbury, Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques, Bastad, Sweden, LNCS 925,p. 308-331, 1995 (editors: J. Jeuring, E. Meijer).
Inductive Graphs and Functional Graph Algorithms

Martin Erwig

Collections

Bulk types with class
SL Peyton Jones, Electronic proceedings of the 1996 Glasgow Functional Programming Workshop, Ullapool, July 1996.

Matrices

Sparse matrix representations in a functional language

P.W. Grant, J.A. Sharp, M.F. Webster and X. Zhang, Journal of Functional Programming, 6(1):143-170, January 1996.

Binary

Heap Compression and Binary I/O in Haskell
Malcolm Wallace and Colin Runciman, Proceedings of the 2nd ACM Haskell Workshop, Amsterdam, the Netherlands, June 1997.
The Bits Between The Lambdas: Binary Data in a Lazy Functional Language
Malcolm Wallace and Colin Runciman. proceedings of the International Symposium on Memory Management, Vancouver, Canada, Oct 1998.

Nested Datatypes

Finger Trees: A Simple General-purpose Data Structure
Ralf Hinze and Ross Paterson, Journal of Functional Programming
De Bruijn Notation as a Nested Datatype
Richard Bird and Ross Paterson. Journal of Functional Programming, vol. 9(1), pp. 77-91, 1999.
Generalised Folds for Nested Datatypes
Richard Bird and Ross Paterson, Formal Aspects of Computing, vol. 11(2), pp. 200-222, 1999.
Polytypic Functions Over Nested Datatypes
Ralf Hinze. In Rafael Dueire Lins, editor, 3rd Latin-American Conference on Functional Programming (CLaPF'99), March 1999.

Testing, reliability and correctness

Tracing and debugging

Freja, Hat and Hood - A Comparative Evaluation of Three Systems for Tracing and Debugging Lazy Functional Programs
Olaf Chitil, Colin Runciman, and Malcolm Wallace. Proceedings of the 12th International Workshop on Implementation of Functional Languages, Aachen, Germany, September 4th - 7th 2000, LNCS 2011, 2001, pp. 176--193
Multiple-View Tracing for Haskell - a New Hat
Malcolm Wallace, Olaf Chitil, Thorsten Brehm, and Colin Runciman. (draft)
Lazy algorithmic debugging: ideas for practical implementation.
Henrik Nilsson and Peter Fritzson. In Peter Fritzson, editor, Automated and Algorithmic Debugging, volume 749 of Lecture Notes in Computer Science, pages 117 - 134, Linkping, Sweden, May 1993.
Henrik Nilsson and Peter Fritzson.
Algorithmic debugging for lazy functional languages. Journal of Functional Programming, 4(3):337 - 370, July 1994.
A declarative approach to debugging for lazy functional languages.
Henrik Nilsson. Licentiate Thesis No. 450, Department of Computer and Information Science, Linkpings universitet, S-581 83, Linkping, Sweden, September 1994.
The architecture of a debugger for lazy functional languages.
Jan Sparud and Henrik Nilsson. In Mireille Ducass, editor, Proceedings of AADEBUG '95, 2nd Internatinal Workshop on Automated and Algorithmic Debugging, Saint-Malo, France, May 1995, IRISA, Campus Universitaire de Beaulieu, 35042 Rennes, Cedex, France.
The evaluation dependence tree: an execution record for lazy functional debugging
Henrik Nilsson and Jan Sparud. Research Report LiTH-IDA-R-96-23, Department of Computer and Information Science, Linkpings universitet, S-581 83, Linkping, Sweden, August 1996.
The evaluation dependence tree as a basis for lazy functional debugging
Henrik Nilsson and Jan Sparud. Automated Software Engineering, 4(2):121 - 150, April 1997.
Declarative Debugging for Lazy Functional Languages
Henrik Nilsson. PhD Thesis No. 430, Department of Computer and Information Science, Linkpings universitet, S-581 83, Linkping, Sweden, May 1998.
Tracing piece by piece: affordable debugging for lazy functional languages
Henrik Nilsson. Proceedings of the 1999 ACM SIGPLAN International Conference on Functional Programming, pages 36 - 47, Paris, France, September 1999.
How to look busy while being as lazy as ever: the implementation of a lazy functional debugger
Henrik Nilsson. Journal of Functional Programming, 11(6):629 - 671, November 2001

Testing

Testing Monadic Programs with QuickCheck
Koen Claessen, John Hughes. SIGPLAN Notices 37(12): 47-59 (2002)

Software reliability

Typed Contracts for Functional Programming
Ralf Hinze, Johan Jeuring and Andres Lh. In Philip Wadler and Masimi Hagiya, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), 24-26 April 2006, Fuji Susono, Japan.

Program Development

Program derivation

An algebra of scans
Ralf Hinze. In Dexter Kozen, editor, Proceedings of the Seventh International Conference on Mathematics of Program Construction (MPC 2004), Stirling, Scotland, UK, July 12-14, 2004.
Constructing tournament representations: An exercise in pointwise relational programming
Ralf Hinze. In Eerke Boiten, Bernhard Mller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), Dagstuhl, Germany, July 8-10, 2002. Lecture Notes in Computer Science 2386, pp. 131-147.

Editors

Visual Haskell: A full-featured Haskell development environment
Krasimir Angelov, Simon Marlow. Haskell '05: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, pages 5--16, Tallinn, Estonia, ACM Press, September 2005
Dynamic Applications From the Ground Up
Don Stewart and Manuel M. T. Chakravarty. In Proceedings of the ACM SIGPLAN Workshop on Haskell, pages 27-38. ACM Press, 2005.

Documentation

Haddock, A Haskell Documentation Tool
Simon Marlow. Proceedings of the ACM SIGPLAN workshop on Haskell, Pittsburgh Pennsylvania, USA, ACM Press, October 2002

Lexers

Lazy Lexing is Fast
Manuel M. T. Chakravarty. In A. Middeldorp and T. Sato, editors, Fourth Fuji International Symposium on Functional and Logic Programming, Springer-Verlag, LNCS 1722, pages 68-84, 1999.

Parsers

Parsec: Direct Style Monadic Parser Combinators for the Real World
Daan Leijen and Erik Meijer. Technical Report UU-CS-2001-35, Departement of Computer Science, Universiteit Utrecht, 2001.

Pretty printing

The Design of a Pretty-printing Library
John Hughes. Advanced Functional Programming 1995. 53-96
A prettier printer
Philip Wadler. The Fun of Programming. A symposium in honour of Professor Richard Bird's 60th birthday Examination Schools, Oxford, 24-25 March 2003.

Functional reactive programming

The Yampa Arcade
Antony Courtney and Henrik Nilsson and John Peterson. In Proceedings of the 2003 ACM SIGPLAN Haskell Workshop (Haskell'03), pages 7 - 18, Uppsala, Sweden, August 2003. ACM Press.
Functional Automatic Differentiation with Dirac Impulses
Henrik Nilsson. In Proceedings of the Eight ACM SIGPLAN International Conference on Functional Programming, pages 159 - 187, Uppsala, Sweden, August 2003. ACM Press.
Arrows, robots, and functional reactive programming
Paul Hudak, Antony Courtney, Henrik Nilsson, and John Peterson. In Summer Shcool on Advanced Functional Programming 2002, Oxford University, volume 2638 of Lecture Notes in Computer Science, pages 159 - 187, 2003. Springer-Verlag.
System presentation - Functional reactive robotics: an excercise in principled integration of domain-specific languages

Izzet Pembeci, Henrik Nilsson, and Gregory Hager. In Principles and Practice of Declarative Programming (PPDP'02), pages 168 - 179, Pittsburgh, Pennsylvania, USA, October 2002.

Functional Reactive Animation
Conal Elliott and Paul Hudak. In the proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming (ICFP '97).
From Functional Animation to Sprite-Based Display
Conal Elliott, In the Proceedings of PADL '99.
A "Fifteen Puzzle" in Fran
Conal Elliott. October, 1998.
Two-handed Image Navigation in Fran
Conal Elliott. 1998 Glasgow Functional Programming Workshop.
Functional Implementations of Continuous Modeled Animation
Conal Elliott. In the Proceedings of PLILP/ALP '98.

Robots

Lambda in Motion: Controlling Robots With Haskell
John Peterson, Paul Hudak, and Conal Elliott In the proceedings of PADL '99.

Graphics

Programming Graphics Processors Functionally
Conal Elliott. Proceedings of the 2004 Haskell Workshop.

User Interfaces

Composing graphical user interfaces in a purely functional language
PhD Thesis, Department of Computing Science, University of Glasgow, June 1998.
Composing the User Interface with Haggis
Sigbjorn Finne and Simon Peyton Jones Proceedings of the Second International School on Advanced Functional Programming, Olympia, WA, USA, August 26-30, 1996. LNCS 1129.
wxHaskell: A portable and concise GUI library for Haskell
Daan Leijen. The ACM SIGPLAN Haskell workshop, Snowbird, Utah, September 22, 2004.

Domain Specific Languages

Domain Specific Embedded Compilers
Daan Leijen and Erik Meijer. 2nd USENIX Conference on Domain-Specific Languages (DSL'99), Austin, Texas, October 1999. Also appeared in ACM SIGPLAN Notices 35, 1, January 2000.

Hardware Description

Lava: Hardware Design in Haskell
Per Bjesse, Koen Claessen, Mary Sheeran, Satnam Singh
An Embedded Language Approach to Hardware Description and Verification
Koen Claessen

Foreign language interfaces

Scripting COM components in Haskell
SL Peyton Jones, E Meijer, and D Leijen, Software Reuse 1998.
Calling hell from heaven and heaven from hell
Sigbjorn Finne, Daan Leijen, Erik Meijer, and Simon Peyton Jones. ICFP '99.
Green Card: a foreign-language interface for Haskell
T Nordin and SL Peyton Jones, Proceedings of the Haskell Workshop, Amsterdam, June 1997.
Calling heaven from hell, and hell from heaven
Sigbjorn Finne, Daan Leijen, Erik Meijer and Simon Peyton Jones. ICFP'99
C -> Haskell, or Yet Another Interfacing Tool
Manuel M. T. Chakravarty. In Pieter Koopman and Chris Clack, editors, Implementation of Functional Languages, 11th. International Workshop (IFL'99), Springer-Verlag, LNCS 1868, 2000.
H/Direct: A Binary Foreign Language Interface for Haskell
Sigbjorn Finne, Daan Leijen, Erik Meijer and Simon Peyton Jones. Presented at the International Conference on Functional Programming, Baltimore, M