anchor.diff:    ;
   //[13]
   MultiplicativeExpr
  -  : UnionExpr ( ('*' | 'div' | 'idiv' | 'mod') UnionExpr )*
  +  : UnionExpr ( ('*' | DIV | IDIV | MOD) UnionExpr )*
     ;
   //[14]
   UnionExpr
  -  : IntersectExceptExpr ( ('union' | '|') IntersectExceptExpr )*
  +  : IntersectExceptExpr ( (UNION | '|') IntersectExceptExpr )*
     ;
   //[15]
   IntersectExceptExpr
  -  : InstanceofExpr ( ('intersect' | 'except') InstanceofExpr )*
  +  : InstanceofExpr ( (INTERSECT | EXCEPT) InstanceofExpr )*
     ;
   //[16]
   InstanceofExpr
  -  : TreatExpr ( 'instance' 'of' SequenceType )?
  +  : TreatExpr ( INSTANCE OF SequenceType )?
     ;
   //[17]
   TreatExpr
  -  : CastableExpr ( 'treat' 'as' SequenceType )?
  +  : CastableExpr ( TREAT AS SequenceType )?
     ;
   //[18]
   CastableExpr
  -  : CastExpr ( 'castable' 'as' SingleType )?
  +  : CastExpr ( CASTABLE AS SingleType )?
     ;
   //[19]
   CastExpr
  -  : UnaryExpr ( 'cast' 'as' SingleType )?
  +  : UnaryExpr ( CAST AS SingleType )?
     ;
   //[20]
   UnaryExpr
  
positive.code:   ;
  //[4]
  ForExpr
    : SimpleForClause 'return' ExprSingle
    ;
  //[5]
  SimpleForClause
    : 'for' '$' VarName 'in' ExprSingle (',' '$' VarName 'in' ExprSingle)*
    ;
  //[6]
  QuantifiedExpr
    : ('some' | 'every') '$' VarName 'in' ExprSingle (',' '$' VarName 'in' ExprSingle)* 'satisfies' ExprSingle
    ;
  //[7]
  IfExpr
    : 'if' '(' Expr ')' 'then' ExprSingle 'else' ExprSingle
    ;
  //[8]
  OrExpr
    : AndExpr ( 'or' AndExpr )*
    ;
  //[9]
  AndExpr
    : ComparisonExpr ( 'and' ComparisonExpr )*
    ;
  //[10]
  ComparisonExpr
  
negative.code:   ;
  //[50]
  SequenceType
    : (EMPTY_SEQUENCE '(' ')')
    | (ItemType OccurrenceIndicator?)
    ;
  //[51]
  