anchor.diff:    E _current;
   
     _DoubleLinkedQueueIterator(_DoubleLinkedQueueSentinel<E> sentinel)
  -      : _sentinel = sentinel, _nextEntry = sentinel._next;
  +      : _sentinel = sentinel, _nextEntry = sentinel._nextLink;
   
     bool moveNext() {
       if (identical(_nextEntry, _sentinel)) {
  
positive.code:   }
  
    E removeLast() {
      _DoubleLinkedQueueEntry lastEntry = _sentinel._previous;
      E result = lastEntry._remove();
      _elementCount--;
      return result;
    }
  
    E removeFirst() {
      _DoubleLinkedQueueEntry firstEntry = _sentinel._next;
      E result = firstEntry._remove();
      _elementCount--;
      return result;
    }
  
    bool remove(Object o) {
      _DoubleLinkedQueueEntry<E> entry = _sentinel._next;
      while (!identical(entry, _sentinel)) {
        if (entry.element == o) {
          entry._remove();
          _elementCount--;
          return true;
        }
        entry = entry._next;
      }
      return false;
    }
  
    void _filter(bool test(E element), bool removeMatching) {
      _DoubleLinkedQueueEntry<E> entry = _sentinel._next;
      while (!identical(entry, _sentinel)) {
        _DoubleLinkedQueueEntry<E> next = entry._next;
        if (identical(removeMatching, test(entry.element))) {
          entry._remove();
          _elementCount--;
  
negative.code:   E get element;
  
    DoubleLinkedQueueEntry<E> nextEntry() {
      _DoubleLinkedQueueEntry next = _nextLink;
      return next._asNonSentinelEntry();
    }
  
    DoubleLinkedQueueEntry<E> previousEntry() {
      _DoubleLinkedQueueEntry previous = _previousLink;
      return previous._asNonSentinelEntry();
    }
  }
  