anchor.diff:  
   operationType: 'query' | 'mutation' | 'subscription';
   
  -//https://spec.graphql.org/June2018/#sec-Selection-Sets
  +//https://spec.graphql.org/October2021/#sec-Selection-Sets
   selectionSet: '{' selection+ '}';
   
   selection: field
       | fragmentSpread
       | inlineFragment
       ;
  -//https://spec.graphql.org/June2018/#sec-Language.Fields
  +//https://spec.graphql.org/October2021/#sec-Language.Fields
   field: alias? name arguments? directives? selectionSet?;
   
  -//https://spec.graphql.org/June2018/#sec-Language.Arguments
  +//https://spec.graphql.org/October2021/#sec-Language.Arguments
   arguments: '(' argument+ ')';
   argument: name ':' value;
   
  -//https://spec.graphql.org/June2018/#sec-Field-Alias
  +//https://spec.graphql.org/October2021/#sec-Field-Alias
   alias: name ':';
   
  -//https://spec.graphql.org/June2018/#sec-Language.Fragments
  +//https://spec.graphql.org/October2021/#sec-Language.Fragments
   fragmentSpread: '...' fragmentName directives?;
   fragmentDefinition:
   	'fragment' fragmentName typeCondition directives? selectionSet;
   fragmentName: name; // except on
   
  -//https://spec.graphql.org/June2018/#sec-Type-Conditions
  +//https://spec.graphql.org/October2021/#sec-Type-Conditions
   typeCondition: 'on' namedType;
   
  -//https://spec.graphql.org/June2018/#sec-Inline-Fragments
  +//https://spec.graphql.org/October2021/#sec-Inline-Fragments
   inlineFragment:	'...' typeCondition? directives? selectionSet;
   
  -//https://spec.graphql.org/June2018/#sec-Input-Values
  +//https://spec.graphql.org/October2021/#sec-Input-Values
   value:
   	 variable
   	| intValue
  
positive.code: fieldsDefinition: '{'  fieldDefinition+ '}';
  fieldDefinition: description? name  argumentsDefinition? ':' type_  directives? ;
  
  //https://spec.graphql.org/June2018/#sec-Field-Arguments
  argumentsDefinition: '(' inputValueDefinition+ ')';
  inputValueDefinition:  description? name ':' type_ defaultValue? directives?;
  
  //https://spec.graphql.org/June2018/#sec-Object-Extensions
  objectTypeExtension:
      'extend' 'type' name implementsInterfaces? directives? fieldsDefinition
      | 'extend' 'type' name implementsInterfaces? directives
      | 'extend' 'type' name implementsInterfaces
      ;
  
  //https://spec.graphql.org/June2018/#sec-Interfaces
  interfaceTypeDefinition: description? 'interface' name directives? fieldsDefinition?;
  
  //https://spec.graphql.org/June2018/#sec-Interface-Extensions
  interfaceTypeExtension:  'extend' 'interface' name directives? fieldsDefinition
      | 'extend' 'interface' name directives
      ;
  
  // https://graphql.github.io/graphql-spec/June2018/#sec-Unions
  unionTypeDefinition:  description? 'union' name directives? unionMemberTypes?;
  unionMemberTypes: '=' '|'?  namedType ('|'namedType)* ;
  
  //https://spec.graphql.org/June2018/#sec-Union-Extensions
  unionTypeExtension : 'extend' 'union' name directives? unionMemberTypes
      | 'extend' 'union' name directives
      ;
  
  //https://spec.graphql.org/June2018/#sec-Enums
  enumTypeDefinition:  description? 'enum' name directives? enumValuesDefinition?;
  enumValuesDefinition: '{' enumValueDefinition+  '}';
  enumValueDefinition: description? enumValue  directives?;
  
  //https://spec.graphql.org/June2018/#sec-Enum-Extensions
  enumTypeExtension: 'extend' 'enum' name directives? enumValuesDefinition
      | 'extend' 'enum' name directives
      ;
  
  //https://spec.graphql.org/June2018/#sec-Input-Objects
  inputObjectTypeDefinition: description? 'input' name directives? inputFieldsDefinition?;
  inputFieldsDefinition: '{' inputValueDefinition+ '}';
  
  
negative.code: listType: '[' type_ ']';
  
  
  //https://spec.graphql.org/October2021/#sec-Language.Directives
  directives:  directive+;
  directive: '@' name arguments?;
  
  // https://spec.graphql.org/October2021/#sec-Type-System
  // deviation from 2018 specs. Added type system document
  //https://spec.graphql.org/October2021/#TypeSystemDocument (new in 2021)
  typeSystemDocument: typeSystemDefinition+;
  typeSystemDefinition: schemaDefinition
  	| typeDefinition
  	| directiveDefinition
  	;
  
  // https://spec.graphql.org/October2021/#TypeSystemExtensionDocument (new in 2021)
  typeSystemExtensionDocument: typeSystemExtension+;
  
  //https://spec.graphql.org/October2021/#sec-Type-System-Extensions
  typeSystemExtension: schemaExtension
      | typeExtension
      ;
  
  // https://spec.graphql.org/October2021/#sec-Schema
  schemaDefinition:
  	 'schema' directives? '{' rootOperationTypeDefinition+ '}';
  
  rootOperationTypeDefinition: operationType ':' namedType;
  
  
  //https://spec.graphql.org/October2021/#sec-Schema-Extension (deviation from 2018)
  schemaExtension:
      'extend' 'schema' directives? '{' rootOperationTypeDefinition+ '}' //(new 2021)
      | 'extend' 'schema' directives
      ;
  
  //https://spec.graphql.org/June2018/#OperationTypeDefinition
  //operationTypeDefinition: operationType ':' namedType; //removed in 2021
  
  
  
  //https://spec.graphql.org/June2018/#sec-Descriptions
  description: stringValue;
  
  //https://spec.graphql.org/October2021/#sec-Types
  typeDefinition:
  	scalarTypeDefinition
  	| objectTypeDefinition
  