anchor.diff:    FileSpan get span => NAME.span;
   
     @override
  -  String get value => NAME.span.text;
  +  String computeValue(Map<String, dynamic> variables) => NAME.span.text;
   }
   
  -class ObjectValueContext extends ValueContext<Map<String, dynamic>> {
  +class ObjectValueContext extends InputValueContext<Map<String, dynamic>> {
     final Token LBRACE;
     final List<ObjectFieldContext> fields;
     final Token RBRACE;
  
positive.code:   FileSpan get span => NULL.span;
  
    @override
    Null get value => null;
  }
  
  class EnumValueContext extends ValueContext<String> {
    final Token NAME;
  
    EnumValueContext(this.NAME);
  
negative.code:   }
  
    @override
    Map<String, dynamic> computeValue(Map<String, dynamic> variables) {
      if (fields.isEmpty) {
        return <String, dynamic>{};
      } else {
        return fields.fold<Map<String, dynamic>>(<String, dynamic>{},
            (map, field) {
          return map..[field.NAME.text] = field.value.computeValue(variables);
        });
      }
    }
  