anchor.diff:    ItemRecord<V> _remove(ItemRecord record) => _addToRemovals(_unlink(record));
   
     ItemRecord<V> _unlink(ItemRecord record) {
  -    if (_movedItems != null) _movedItems.remove(record);
  +    if (_linkedRecords != null) _linkedRecords.remove(record);
   
       var prev = record._prev;
       var next = record._next;
  
positive.code:     }
  
      // Attempt to see if we have seen the item before.
      record = _movedItems == null ? null : _movedItems.get(item, index);
      if (record != null) {
        // We have seen this before, we need to move it forward in the collection.
        _moveAfter(record, previousRecord, index);
      } else {
        // Never seen it, check evicted list.
        record = _removedItems == null ? null : _removedItems.get(item);
        if (record != null) {
          // It is an item which we have evicted earlier: reinsert it back into the list.
          _reinsertAfter(record, previousRecord, index);
  
negative.code:   Iterable _iterable;
    int _length;
  
    /// Keeps track of the used records at any point in time (during & across `_check()` calls)
    DuplicateMap _linkedRecords;
  
    /// Keeps track of the removed records at any point in time during `_check()` calls.
    DuplicateMap _unlinkedRecords;
  
    ItemRecord<V> _previousItHead;
    ItemRecord<V> _itHead, _itTail;
  