anchor.diff:  
   }
   
  +class VectorIterator<E> implements Iterator<E> {
  +  List _array;
  +  int _index = 0;
  +  Iterator _current = null;
  +
  +  VectorIterator(this._array);
  +  E get current => (_current != null) ? _current.current : null;
  +
  +  bool moveNext() {
  +    while(_index < _array.length) {
  +      if (_current == null) {
  +        _current = _array[_index].iterator;
  +      }
  +      if (_current.moveNext()) {
  +        return true;
  +      } else {
  +        _current = null;
  +        _index++;
  +      }
  +    }
  +    return false;
  +  }
  +}
  +
   class _VNode {
     List _array;
     Owner _ownerID;
   
     int get length => _array.length;
  +
  +  Iterator get iterator {
  +    if (_array.length == 0) return _array.iterator;
  +    if (_array[0] is _VNode) return new VectorIterator(_array);
  +    return _array.iterator;
  +  }
   
     String toString() {
       return "VNode: " + _array.toString();
  
positive.code:   E get first => _get(0);
    E get last => _get(this.length > 0 ? this.length - 1 : 0);
    int get length => _size;
    Iterator<E> get iterator => new VectorIterator<E>(this);
  }
  
  class VectorIterator<E> extends Iterator<E> {
    PersistentVectorBase<E> _parentVector;
    int _position = -1;
    int _length;
  
    VectorIterator(this._parentVector) {
      _length = _parentVector.length;
    }
  
    bool moveNext() {
      if (_length == _position + 1) return false;
      _position++;
      return true;
    }
  
    E get current => _parentVector._get(_position);
  }
  
  abstract class BaseVectorImpl<E> extends PersistentVectorBase<E> {
  
negative.code: 
    _VNode _removeAfter(Owner ownerID, int newSize) {
      var sizeIndex = (newSize - 1) & _MASK;
      if (newSize != 0 && sizeIndex >= this.length - 1) {
        return this;
      }
      var editable = _transientVNode(this, ownerID);
      if (newSize == 0) {
        editable._array = [];
      } else {
        editable._array.removeRange(sizeIndex + 1, editable.length);
      }
      return editable;
  
    }
  