anchor.diff:      ;
   
   typeSpecifier
  -    : SPECIFY type
  -    -> ^(TYPE_SPECIFIER[$SPECIFY] type)
  +    : SPECIFY producedType
  +    -> ^(TYPE_SPECIFIER[$SPECIFY] producedType)
       ;
   
   nonstringLiteral
  
positive.code:     ;
  
  isCondition
      : ('(' IS_OP type LIDENTIFIER ')') => '(' IS_OP type memberName ')'
      -> ^(IS_CONDITION[$IS_OP] type ^(VARIABLE type memberName ^(SPECIFIER_EXPRESSION ^(EXPRESSION ^(MEMBER memberName)))))
      | '(' IS_OP type (memberName specifier | expression) ')'
      -> ^(IS_CONDITION[$IS_OP] type ^(VARIABLE type memberName specifier)? expression?)
      ;
  
  satisfiesCondition
      : '(' SATISFIES type type ')'
      -> ^(SATISFIES_CONDITION[$SATISFIES] type+)
      ;
  
  controlStructure
  
negative.code:     ;
  
  caseType 
      : producedType 
      | memberName -> ^(MEMBER memberName)
      //| (annotations? 'case' memberName) => annotations? 'case' memberName 
      ;
  