anchor.diff:  
       // Copy all the (key, value) pairs to a freshly allocated
       // linked hash map thus preserving the ordering.
  -    Map result = <String, dynamic>{};
  +    var result = <String, dynamic>{};
       List<String> keys = _computeKeys();
       for (int i = 0; i < keys.length; i++) {
         String key = keys[i];
  
positive.code: 
    bool get _isUpgraded => _processed == null;
  
    Map get _upgradedMap {
      assert(_isUpgraded);
      // 'cast' the union type to LinkedHashMap.  It would be even better if we
      // could 'cast' to the implementation type, since LinkedHashMap includes
  
negative.code:     }
    }
  
    void forEach(void f(String key, value)) {
      if (_isUpgraded) return _upgradedMap.forEach(f);
      List<String> keys = _computeKeys();
      for (int i = 0; i < keys.length; i++) {
  