Follow along to Tom Stuart's _Understanding Computation_