Functional programming practice and theory - MacLennan, Bruce J. (Addison-Wesley, 1990)