anchor.diff:  
     SubListIterable(this._iterable, this._start, this._endOrLength) {
       RangeError.checkNotNegative(_start, "start");
  -    var endOrLength = _endOrLength;
  +    int? endOrLength = _endOrLength;
       if (endOrLength != null) {
         RangeError.checkNotNegative(endOrLength, "end");
         if (_start > endOrLength) {
  
positive.code:   }
  
    E get current {
      if (_remaining < 0) throw IterableElementError.noElement();
      return _iterator.current;
    }
  }
  
negative.code:   Iterable<E> skip(int count) {
      RangeError.checkNotNegative(count, "count");
      int newStart = _start + count;
      int? endOrLength = _endOrLength;
      if (endOrLength != null && newStart >= endOrLength) {
        return new EmptyIterable<E>();
      }
  