Working through the exercises in Tom Stuart's Understanding Computation.