anchor.diff:      : LPAREN expressionList? RPAREN
       ;
   
  -patternDefinition
  -    : patternVariableDefinition
  +primaryPattern
  +    : patternVariableDefinition                                            #typePattern
       ;
   
   patternVariableDefinition
  
positive.code:     | expr bop=(PLUS|MINUS) expr                                           #binOp
      // handle bitwise shifts below, not in lexer
      | expr (LT LT | GT GT GT | GT GT) expr                                 #bitShift
      | expr bop=LITERAL_INSTANCEOF (patternDefinition | typeType[true])     #instanceOfExp
      | expr bop=(LE | GE | GT | LT) expr                                    #binOp
      | expr bop=(EQUAL | NOT_EQUAL) expr                                    #binOp
      | expr bop=BAND expr                                                   #binOp
  
negative.code:     ;
  
  caseConstants
      : caseConstant (COMMA caseConstant)*
      ;
  
  caseConstant
      : expression
      ;
  
  forControl
  