anchor.diff:        }
       });
   
  -    // Items remaining at the end of the list have been removed.
       if (insertBefore != null) {
  -      // Truncate end of list.
  -      insertBefore._prev?._next = null;
  -
  +      // Remaining records that weren't seen are the removals.
         _removalsHead = insertBefore;
  -      _removalsTail = insertBefore;
  -
  -      if (_removalsHead == _mapHead) {
  -        _mapHead = null;
  -      }
  -
  -      for (var record = insertBefore;
  -          record != null;
  -          record = record._nextRemoved) {
  +
  +      for (var record = insertBefore; record != null; record = record._next) {
           _records.remove(record.key);
  -        record._nextRemoved = record._next;
           record.previousValue = record.currentValue;
           record.currentValue = null;
  -        record._prev = null;
  -        record._next = null;
  +      }
  +
  +      if (_removalsHead == _mapHead) {
  +        // Remove the head record reference.
  +        _mapHead = null;
  +      } else {
  +        // Truncate removals from end of record list.
  +        _removalsHead._prev._next = null;
         }
       }
   
  
positive.code:     KeyValueChangeRecord record;
      for (record = this._removalsHead;
          !identical(record, null);
          record = record._nextRemoved) {
        fn(record);
      }
    }
  
negative.code:     }
      for (record = this._removalsHead;
          !identical(record, null);
          record = record._next) {
        removals.add(record);
      }
      return "map: " +
  