Books by Benjamin C. Pierce
Advanced Topics in Types and Programming Languages
A thorough and accessible introduction to a range of key ideas in type systems for programming language.