anchor.diff:      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 =>
  
positive.code:   QueryConfig get config => globalContext.config;
  
    R callQuery<K, R>(Query<K, R> query, K key) {
      final result = QueryContext(globalContext)._execute(query, key);
      _innerCalls.add(result);
      if (result.result == null) {
  
negative.code: 
      try {
        final result = query.execute(this, key);
        globalContext._reportResult(query.name, key, result);
        reportErrors();
        return RecordedQueryCall(
          name: query.name,
  