Skeleton of TypeCheck
Use record to rewrite Ast