About me

I am a PhD student in the Programming Languages and Systems group at UNSW in Sydney, Australia. My supervisors are Ben Lippmeier, Manuel Chakravarty and Gabrielle Keller. I am interested in optimisations for purely functional languages, specifically fusion for nested data parallelism.

I was also the winner of the inaugural 2014 FP-Syd Coq Fight, perhaps the first ever live theorem proving competition. I should note, however, that this doesn’t translate into actual theorem prover proficiency.

The dangers of greedy fusion

The dangers of greedy fusion




Finding the best fusion clustering is actually NP-hard (as proved by Alain Darte). By converting combinator programs to integer linear programs, we can generally find good clusterings in adequate time.

Disciplined Disciple Compiler (DDC)

DDC is a research compiler for a strict functional language with effect typing. It isn’t particularly useful yet, but has some interesting optimisations.

Linear Integer/Mixed Programming (LIMP)

A fairly simple Haskell library for expressing linear programs. At the moment, there’s only a simplifier, COIN/CBC bindings, and pretty-printing.

Audio pilot

A game that takes music and lets you fly around a tunnel. Written in Haskell, using OpenGL.

Social media


I like writing short stories - fiction. Some of them are here. Sometimes, the school newspaper even prints them!

I also like to make music when I can.