Unix Pipes as IO Monads (2001)

Monad in Scheme

Approximate Dependent-Type Programming

An argument against call/cc (2012)

Lightweight Dependent-type Programming

XML and Scheme

An argument against call/cc (2012)

Modular, composable, typed optimizations in the tagless-final style

Rethinking Prolog [pdf]

Streams and Iteratees

The Design and Implementation of BER MetaOCaml

Left fold vs. right fold: theory vs. practice