anchor.diff:  
     void removeRange(int start, int end) {
       RangeError.checkValidRange(start, end, this.length);
  -    int length = end - start;
  -    setRange(start, this.length - length, this, end);
  -    this.length -= length;
  +    if (end > start) {
  +      _closeGap(start, end);
  +    }
     }
   
     void fillRange(int start, int end, [E fill]) {
  
positive.code: 
    E removeAt(int index) {
      E result = this[index];
      setRange(index, this.length - 1, this, index + 1);
      length--;
      return result;
    }
  
  
negative.code:     int removeLength = end - start;
      int insertLength = newContents.length;
      if (removeLength >= insertLength) {
        int insertEnd = start + insertLength;
        this.setRange(start, insertEnd, newContents);
        if (removeLength > insertLength) {
          _closeGap(insertEnd, end);
        }
      } else {
        int delta = insertLength - removeLength;
  