anchor.diff:  // NB: It is an anomaly that VAR can be a return type (`var this.x()`).
   fieldFormalParameter
       :    finalConstVarOrType? THIS '.' identifier (formalParameterPart '?'?)?
  +    ;
  +
  +superFormalParameter
  +    :    type? SUPER '.' identifier (formalParameterPart '?'?)?
       ;
   
   defaultFormalParameter
  
positive.code:     ;
  
  argumentList
      :    namedArgument (',' namedArgument)*
      |    expressionList (',' namedArgument)*
      ;
  
  namedArgument
      :    label expression
      ;
  
  cascade
  
negative.code:     ;
  
  setOrMapLiteral
      :    CONST? typeArguments? LBRACE elements? RBRACE
      ;
  
  listLiteral
      :    CONST? typeArguments? '[' elements? ']'
      ;
  
  recordLiteral
      :    CONST? recordLiteralNoConst
      ;
  
  recordLiteralNoConst
      :    '(' expression ',' ')'
      |    '(' label expression ','? ')'
      |    '(' recordField ',' recordField (',' recordField)* ','? ')'
      ;
  
  recordField
      :    label? expression
      ;
  
  elements
  