anchor.diff:        record.currentIndex = record.previousIndex = i;
         record._prev = prev;
         if (prev != null) prev._next = prev._nextPrevious = record;
  +
  +      if (_movedItems == null) _movedItems = new DuplicateMap();
         _movedItems.put(record);
       }
   
  
positive.code:   }
  
    ItemRecord<V> _reinsertAfter(ItemRecord<V> record, ItemRecord<V> prevRecord, int index) {
      _removedItems.remove(record);
      var prev = record._prevRemoved;
      var next = record._nextRemoved;
  
  
negative.code:   void _revertToPreviousState() {
      if (!isDirty) return;
  
      if (_movedItems != null) _movedItems.clear();
      ItemRecord<V> prev;
      int i = 0;
  
  