anchor.diff:  
   iterable
   	: 'iterable' '<' type optionalType '>' ';'
  -	| 'legacyiterable' '<' type '>' ';'
   ;
   
   optionalType
  
positive.code: 	: 'Promise' '<' returnType '>'
  ;
  
  typeSuffix
  	: '[' ']' typeSuffix
  	| '?' typeSuffixStartingWithArray
  	| /* empty */
  ;
  
  typeSuffixStartingWithArray
  	: '[' ']' typeSuffix
  	| /* empty */
  ;
  
  null_
  	: '?'
  	| /* empty */
  
negative.code: ;
  
  attributeRest
  	: 'attribute' type attributeName ';'
  ;
  
  attributeName
  