Precedence climbing, AST definition and AST construction

typVar could be a `TypeDef`