anchor.diff:    }
   
     CollectionChangeRecord _addToRemovals(CollectionChangeRecord record) {
  -    _unlinkedRecords ??=
  -        _useIdentity ? new _DuplicateMap() : new _DuplicateMap.withHashcode();
  +    _unlinkedRecords ??= new _DuplicateMap();
       _unlinkedRecords.put(record);
       record.currentIndex = null;
       record._nextRemoved = null;
  
positive.code: class _DuplicateMap {
    final Map<dynamic, _DuplicateItemRecordList> _map;
    _DuplicateMap() : _map = new Map.identity();
    _DuplicateMap.withHashcode() : _map = new Map();
  
    void put(CollectionChangeRecord record) {
      // todo(vicb) handle corner cases
  
negative.code:   // has changed
    CollectionChangeRecord _identityChangesHead;
    CollectionChangeRecord _identityChangesTail;
  
    DefaultIterableDiffer([TrackByFn trackByFn])
        : _trackByFn = trackByFn ?? _trackByIdentity;
  