Lecture Notes on Algebraic and Coalgebraic Methods for Calculating Functional Programs - Gibbons, J (1999)