anchor.diff:        } else {
           lowerNode = null;
         }
  -      var newLowerNode = _updateVNode(lowerNode, ownerID, level - _SHIFT, index, value, didAlter);
  +      var newLowerNode = lowerNode._update(ownerID, level - _SHIFT, index, value, didAlter);
         if (newLowerNode == lowerNode) {
           return node;
         }
  
positive.code:     }
      return newNode;
    }
  }
  
  _updateVNode(_VNode node, Owner ownerID, int level, int index, value, Bool didAlter) {
    if (node == null) {
      var t = new _VNode([], new Owner());
      return t._update(ownerID, level, index, value, didAlter);
    }
    return node._update(ownerID, level, index, value, didAlter);
  }
  
  _VNode _transientVNode(_VNode node, Owner ownerID) {
  
negative.code:     var newRoot = vector._root;
      var didAlter = new Bool();
      if (index >= _getTailOffset(vector._size)) {
        newTail = newTail._update(vector._owner, 0, index, value, didAlter);
      } else {
        newRoot = newRoot._update(vector._owner, vector._level, index, value, didAlter);
      }
      if (!didAlter.value) {
        return vector;
  