Wrote most of type checking using TypeCheckVisitor. TypeChecker class may not be needed. Still need to implement instance of and casting.
Also still need to annotate all expression Expr nodes with their type.