anchor.diff:            return newm;
           } else {
             List<_APersistentMap<K, V>> newarray =
  -              new List<_APersistentMap<K, V>>.from(_array);
  +              new List<_APersistentMap<K, V>>.from(_array, growable: false);
             newarray[index] = newm;
             return new _SubMap(_bitmap, newarray, length + delta);
           }
         } else {
           List<_APersistentMap<K, V>> newarray =
  -            new List<_APersistentMap<K, V>>.from(_array);
  +            new List<_APersistentMap<K, V>>.from(_array, growable: false);
           newarray[index] = newm;
           return new _SubMap(_bitmap, newarray, length + delta);
         }
  
positive.code:         return this;
        }
        List<_APersistentMap<K, V>> newarray =
            new List<_APersistentMap<K, V>>.from(_array);
        newarray[index] = newm;
        return new _SubMap(_bitmap, newarray, length);
      } else {
  
negative.code: 
    PersistentMap mapValues(f(V)) {
      List<_APersistentMap<K, V>> newarray =
          new List<_APersistentMap<K, V>>.from(_array, growable: false);
      for (int i = 0; i < _array.length; i++) {
        _APersistentMap<K, V> mi = _array[i];
          newarray[i] = mi.mapValues(f);
  