anchor.diff:  annotation
       :   '@' annotationName ( '(' ( elementValuePairs | elementValue )? ')' )?
       ;
  -    
  +
   annotationName : qualifiedName ;
   
   elementValuePairs
  
positive.code:         ('implements' typeList)?
          classBody
      ;
      
  typeParameters
      :   '<' typeParameter (',' typeParameter)* '>'
      ;
  
negative.code: classCreatorRest
      :   arguments classBody?
      ;
  
  explicitGenericInvocation
      :   nonWildcardTypeArguments explicitGenericInvocationSuffix
      ;
  
  nonWildcardTypeArguments
      :   '<' typeList '>'
      ;
  
  typeArgumentsOrDiamond
      :   '<' '>'
      |   typeArguments
      ;
  
  nonWildcardTypeArgumentsOrDiamond
      :   '<' '>'
      |   nonWildcardTypeArguments
      ;
  
  superSuffix
      :   arguments
  