A thorough and accessible introduction to a range of key ideas in type systems forprogramming language.