2009

Runtime Support for Multicore Haskell

Submitted to the International on Functional Programming (ICFP)

Complete and Decidable Type Inference for GADTs

Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming

Classes, Jim, but not as we know them (2009)

Invited talk for ECOOP 2009

Types are calling conventions

ACM Haskell Symposium

A Tutorial on Parallel and Concurrent Programming in Haskell

Published by Springer Verlag (2009)

Advanced Functional Programming Summer School (2008)

Finding the needle: stack tracing for GHC

ACM Symposium on Haskell

Fun with type functions

Presented at Tony Hoare’s 75th birthday celebration, Cambridge, 17 April 2009

Haskell and Erlang: growing up together (2009)

Invited talk from the Erlang Factory meeting, June 2009

2008

Harnessing the multicores: Nested Data Parallelism in Haskell

Foundations of Software Technology and Theoretical Computer Science (FSTTCS’08), December 2008

FPH: First-class polymorphism for Haskell

Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming, September 2008

Static Contract Checking for Haskell

POPL’09, August 2008

Scrap your type applications

Mathematics of Program Construction (MPC’08), July 2008

Parallel Generational-Copying Garbage Collection with a Block-Structured Heap

ISMM ‘08: Proceedings of the 7th international symposium on Memory management, June 2008

Type Checking with Open Type Functions

ICFP 2008, April 2008

Submitted to ICFP’08

Partial vectorisation of Haskell programs

Proc ACM Workshop on Declarative Aspects of Multicore Programming, January 2008

2007

Faster laziness using dynamic pointer tagging

ICFP ‘07: Proceedings of the ACM SIGPLAN international conference on Functional programming, October 2007

Lightweight concurrency primitives for GHC

Haskell Workshop, September 2007

Comprehensive comprehensions: comprehensions with “order by” and “group by”

Haskell Workshop, September 2007

A History of Haskell: being lazy with class

System F with type equality coercions

ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI’07), January 2007, ISBN: 1-59593-393-X

Beautiful concurrency

Beautiful code, Published by O’Reilly, 2007

Call-pattern specialisation for Haskell programs

Submitted to ICFP 2007

Data Parallel Haskell: a status report

ACM Sigplan Workshop on Declarative Aspects of Multicore Programming, January 2007

Towards open type functions for Haskell

Presented at the Implementing Functional Languages workshop, Sept 2007 (IFL07), but not part of its post-refereed proceedings

2006

Asynchronous exceptions in Haskell

ACM Conference on Programming Languages Design and Implementation (PLDI’01), December 2006

Demand Analysis

Transactional memory with data invariants

First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT’06), June 2006

Lock Free Data Structures using STMs in Haskell

FLOPS ‘06: Proceedings of the Eighth International Symposium on Functional and Logic Programming, to appear, April 2006

Simple unification-based type inference for GADTs

International Conference on Functional Programming (ICFP’06), April 2006

Boxy type inference for higher-rank types and impredicativity

ICFP 2006, January 2006

Haskell Is Not Not ML

European Symposium on Programming ESOP, January 2006

Understanding functional dependencies via constraint handling rules

To appear in the Journal of Functional Programming, January 2006

2005

Scrap your boilerplate with class: extensible generic functions

ACM SIGPLAN International Conference on Functional Programming (ICFP’05), September 2005

Haskell on a Shared-Memory Multiprocessor

Haskell ‘05: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, September 2005

A Monadic Framework for Delimited Continuations

Submitted to Journal of Functional Programming, January 2005

Associated Type Synonyms

ACM SIGPLAN International Conference on Functional Programming (ICFP’05), January 2005

Associated types with class

POPL ‘05: Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of programming languages, January 2005, ISBN: 1-58113-830-X

Composable memory transactions

PPoPP ‘05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, January 2005, ISBN: 1-59593-080-9

Practical type inference for arbitrary-rank types

Journal of Functional Programming , January 2005, Vol 17: pp. 1-82

Submitted to the Journal of Functional Programming

2004

Exploring the Barrier to Entry: Incremental Generational Garbage Collection for Haskell

International Symposium on Memory Management, October 2004

Champagne Prototyping: A Research Technique for Early Evaluation of Complex End-User Programming Systems

IEEE Symposium on Visual Languages and Human Centric Computing (VLHCC), September 2004

Extending the Haskell Foreign Function Interface with Concurrency

Proceedings of the ACM SIGPLAN workshop on Haskell, September 2004

How to make a fast curry: push/enter vs eval/apply

International Conference on Functional Programming, September 2004

Scrap more boilerplate: reflections, zips, and generalised casts

International Conference on Functional Programming, September 2004

Wobbly Types: Type Inference For Generalised Algebraic Data Types

MS-CIS-05-26, July 2004

Constructed Product Result Analysis for Haskell

Journal of Functional Programming, March 2004, Vol 14(2): pp. 211-245

Sound and Decidable Type Inference for Functional Dependencies

European Sumposium on Programming (ESPO’04), January 2004

2003

Optimistic Evaluation: a fast evaluation strategy for non-strict programs

ACM International Conference on Functional Programming (ICFP’03), August 2003

A User-Centred Approach to Functions in Excel

International Conference on Functional Programming (ICFP’03), June 2003

Scrap your boilerplate: a practical approach to generic programming

ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI’03), January 2003

Wearing the hair shirt: a retrospective on Haskell (2003)

2002

Template meta-programming for Haskell

Proceedings of the 2002 Haskell Workshop, Pittsburgh, October 2002

Secrets of the Glasgow Haskell Compiler inliner

Journal of Functional Programming, July 2002, Vol 12: pp. 393-434

First class modules for Haskell

9th International Conference on Foundations of Object-Oriented Languages (FOOL 9), Portland, Oregon, January 2002

Lexically scoped type variables

January 2002, Microsoft Research

2001

Object-Oriented Style Overloading for Haskell

Workshop on Multi-Language Infrastructure and Interoperability (BABEL’01), September 2001

Playing by the rules: rewriting as a practical optimisation technique in GHC

2001 Haskell Workshop, September 2001

Featherweight concurrency in a portable assembly language

Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell

2000

Simple Usage Polymorphism

3rd ACM SIGPLAN Workshop on Types in Compilation, September 2000

Pattern Guards and Transformational Patterns

Haskell Workshop, September 2000

Composing contracts: an adventure in financial engineering

ACM SIGPLAN International Conference on Functional Programming (ICFP’00), September 2000

Derivable type classes

NOTTCS-TR-00-1, September 2000

Proceedings of the Sixth Conference on Uncertainty in Artificial Intelligence (UAI1990)

Porting the Clean Object I/O library to Haskell

Proceedings of the 12th International workshop on the Implementation of Functional Languages, Aachen (IFL’00), selected papers, September 2000

A Single Intermediate Language That Supports Multiple Implementations of Exceptions

ACM SIGPLAN ‘00 Conference on Programming Language Design and Implementation (PLDI), January 2000

Non-stop Haskell

ICFP ‘00: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming, January 2000, ISBN: 1-58113-202-6

The Multi-Architecture Performance of the Parallel Functional Language GPH

Euro-Par 2000 — Parallel Processing, January 2000