Advanced topics in types and programming languages - Pierce, Benjamin C (Prentice Hall of India, 2005)