Typechecker Implementations of Types and Programming Languages http://www.cis.upenn.edu/~bcpierce/tapl/