anchor.diff:  extendedType
       : EXTENDS 
       (
  -      type positionalArguments
  -      -> ^(EXTENDED_TYPE[$EXTENDS] type positionalArguments)
  +      producedType positionalArguments
  +      -> ^(EXTENDED_TYPE[$EXTENDS] producedType positionalArguments)
       | SUPER MEMBER_OP typeReference positionalArguments
         -> ^(EXTENDED_TYPE[$EXTENDS] ^(TYPE_EXPRESSION SUPER MEMBER_OP typeReference) positionalArguments)
       )
       ;
   
   satisfiedTypes
  -    : SATISFIES type ('&' type)*
  -    -> ^(SATISFIED_TYPES[$SATISFIES] type+)
  +    : SATISFIES producedType ('&' producedType)*
  +    -> ^(SATISFIED_TYPES[$SATISFIES] producedType+)
       ;
   
   abstractedType
  -    : 'abstracts'^ type
  +    : 'abstracts'^ producedType
       ;
       
   caseTypes
  
positive.code:     ;
  
  typeSpecifier
      : SPECIFY type
      -> ^(TYPE_SPECIFIER[$SPECIFY] type)
      ;
  
  nonstringLiteral
  
negative.code:     ;
  
  type
      : (producedType -> producedType)
      ( ('|' producedType)+
        -> ^(UNION_TYPE $type producedType+)
      )?
      ;
  
  producedType
      : (unabbreviatedType -> unabbreviatedType)
        (
          sequenceType -> ^(BASE_TYPE sequenceType ^(TYPE_ARGUMENT_LIST $producedType))
        | optionalType -> ^(UNION_TYPE ^(BASE_TYPE optionalType) $producedType)
        )*
      ;
  
  