Essentials of programming languages - Friedman, Daniel P. (MIT Press, McGraw-Hill, 1992)