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