anchor.diff:  // GRAMMAR OF A TUPLE PATTERN
   
   tuple_pattern : '(' tuple_pattern_element_list? ')'  ;
  -tuple_pattern_element_list
  -	:	tuple_pattern_element (',' tuple_pattern_element)*
  -	;
  -tuple_pattern_element : pattern  ;
  +tuple_pattern_element_list :	tuple_pattern_element (',' tuple_pattern_element)* ;
  +tuple_pattern_element : pattern | identifier ':' pattern ;
   
   // GRAMMAR OF AN ENUMERATION CASE PATTERN
   
  -enum_case_pattern : type_identifier? '.' enum_case_name tuple_pattern? ;
  +enum_case_pattern : type_identifier '.' enum_case_name tuple_pattern? ;
   
   // GRAMMAR OF AN OPTIONAL PATTERN
  +
   optional_pattern : identifier_pattern '?' ;
   
   // GRAMMAR OF A TYPE CASTING PATTERN
  
positive.code: 
  // GRAMMAR OF AN ATTRIBUTE
  
  attribute : '@'? attribute_name attribute_argument_clause? ;
  attribute_name : identifier  ;
  attribute_argument_clause : '('  balanced_tokens?  ')'  ;
  attributes : attribute+ ;
  balanced_tokens : balanced_token+ ;
  balanced_token
   : '('  balanced_tokens? ')'
   | '[' balanced_tokens? ']'
   | '{' balanced_tokens? '}'
   | identifier | expression | context_sensitive_keyword | literal | operator
  // | Any punctuation except ( ,  ')' , '[' , ']' , { , or } TODO add?
   ;
  
  // Expressions
  
negative.code:  | protocol_initializer_declaration
   | protocol_subscript_declaration
   | protocol_associated_type_declaration
   | typealias_declaration
   ;
  
  // GRAMMAR OF A PROTOCOL PROPERTY DECLARATION
  