"The topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference." Advanced Topics in Types and Programming Languages can be used in the classroom and as a resource for professionals. Most chapters include exercises, ranging in difficulty from quick comprehension checks to challenging extensions, many with solutions.
Reading the ML type inference chapter now. Like TAPL, it's a little dense, and it includes coverage of features that I could do without (since I'm just trying to learn this stuff for the first time). I glanced ahead a bit and don't think they actually show the code. I'm certain it's online, at least. I'd like some lighter material on the subject,\ if anyone knows of any good sources. There is some more introductory type inference stuff in PLAI (http://www.cs.brown.edu/~sk/Publicati...), but once again, I don't see any code examples. I'd love to see code for a type inference engine / constraint solver for a very simple language.
A good compilation of topics in the field, but IMO you are better off reading individual papers on each subject this text covers. They do not build on top of each other.