anchor.diff:  
   // GRAMMAR OF A PARENTHESIZED EXPRESSION
   
  -parenthesized_expression : '(' expression_element_list? ')'  ;
  -expression_element_list : expression_element (',' expression_element)* ;
  -expression_element : expression | identifier ':' expression  ;
  +parenthesized_expression : '(' expression ')'  ;
  +
  +// GRAMMAR OF A TUPLE EXPRESSION
  +
  +tuple_expression
  + : '(' ')'
  + | '(' tuple_element ',' tuple_element_list ')'
  + ;
  +
  +tuple_element_list : tuple_element (',' tuple_element)* ;
  +
  +tuple_element : expression | identifier ':' expression ;
   
   // GRAMMAR OF A WILDCARD EXPRESSION
   
  
positive.code: 
  // GRAMMAR OF A BINARY EXPRESSION
  
  
  binary_expression
    : binary_operator prefix_expression
  // as far as I can tell, assignment is not a valid operator as it has no return type
  
negative.code: 
  // GRAMMAR OF A SELECTOR EXPRESSION
  
  selector_expression
   : '#selector' '(' expression ')'
   | '#selector' '(' 'getter:' expression ')'
   | '#selector' '(' 'setter:' expression ')'
   ;
  
  // GRAMMAR OF A KEY-PATH EXPRESSION
  
  key_path_expression : '#keyPath' '(' expression ')' ;
  
  // GRAMMAR OF A POSTFIX EXPRESSION (inlined many rules from spec to avoid indirect left-recursion)
  
  