Work in type systems for programming languages now touches many parts of computer science, from language design and implementation to software engineering, network security, databases, and analysis of concurrent and distributed systems. The aim of this book, together with its predecessor, Types and Programming Languages (Pierce [2002]—henceforth TAPL) is to offer a comprehensive and accessible introduction to the area’s central ideas, results, and techniques. |