Introduction to Functional Programming (1988)

by Richard Bird, Philip Wadler