Overview of type checking goals: type safety and runtime type errors:
Why type check intermediate AST repeatedly inside a compiler?
Overview of type checking code in Clogs.