val tc_ast : AST.parse_phase AST.ast -> AST.typecheck_phase AST.ast