An Introduction to Functional Programming (1988)

by Richard S Bird, Philip L Wadler