Wildcard: Identifier ":" TypeExpr ("*"?) TypeExpr: BinaryExpr BinaryExpr: UnaryExpr { Operator PrimitiveExpr }* UnaryExpr: {UnaryOperator}? PrimitiveExpr PrimitiveExpr: GroupExpr | Identifier GroupExpr: "(" TypeExpr ")"