Refactor TypeChecker so it has a header and an implementation file.