Introduction to functional programming - Bird, R. J. (Prentice-Hall international series in computer science, 1988)