ASTNodes now keep track of their source locations ; type inference fixes