anchor.diff:    }
   
     _NodeBase mapValues(_Owner owner, f(V)) {
  -    List<_ANodeBase<K, V>> newarray = _makeCopyIfNeeded(owner, this._owner, _array);
  +    List<_NodeBase<K, V>> newarray = _makeCopyIfNeeded(owner, this._owner, _array);
       for (int i = 0; i < _array.length; i++) {
  -      _ANodeBase<K, V> mi = _array[i];
  +      _NodeBase<K, V> mi = _array[i];
           newarray[i] = mi.mapValues(owner, f);
       }
       return new _SubMap.ensureOwner(this, owner, _bitmap, newarray, length);
  
positive.code:   }
  
    _NodeBase<K, V>
        _unionWith(_Owner owner, _ANodeBase<K, V> m, V combine(V x, V y), int depth) =>
            m._unionWithSubMap(owner, this, combine, depth);
  
    _NodeBase<K, V>
  
negative.code: 
      if ((_bitmap & mask) != 0) {
        int index = _popcount(_bitmap & (mask - 1));
        _NodeBase<K, V> m = _array[index];
        return m._intersectWith(owner, keyValues, size, combine, hash, depth + 1);
      } else {
        return new _EmptyMap(owner);
  