Foundations for programming languages - Mitchell, John C. (MIT Press, 1996)