anchor.diff:  
       try {
         final result = query.execute(this, key);
  +      globalContext._reportResult(query.name, key, result);
         reportErrors();
         return RecordedQueryCall(
           name: query.name,
  
positive.code:     Object key,
      List<ReportedCompilerError> errors,
    ) {
      if (errors.isNotEmpty) {
        _reportedErrors[Tuple2(queryName, key)] = errors;
      } else {
        _reportedErrors.remove(Tuple2(queryName, key));
      }
    }
  }
  
negative.code:     return result.result != null ? Some(result.result as R) : None();
    }
  
    final Map<Tuple2<String, dynamic>, dynamic> _results = {};
    void _reportResult(String queryName, Object key, Object result) {
      final mapKey = Tuple2(queryName, key);
      assert(!_results.containsKey(mapKey));
      _results[mapKey] = result;
    }
  
    Option<R> getResult<R>(String queryName, Object key) {
      final mapKey = Tuple2(queryName, key);
      return Option.of(_results[mapKey] as R);
    }
  
    final Map<Tuple2<String, dynamic>, List<ReportedCompilerError>>
        _reportedErrors = {};
    Iterable<ReportedCompilerError> get reportedErrors =>
  