anchor.diff:  
     dynamic get first {
       if (length > 0) return this[0];
  -    throw new StateError("No elements");
  +    throw IterableElementError.noElement();
     }
   
     dynamic get last {
       if (length > 0) return this[length - 1];
  -    throw new StateError("No elements");
  +    throw IterableElementError.noElement();
     }
   
     dynamic get single {
       if (length == 1) return this[0];
  -    if (length == 0) throw new StateError("No elements");
  -    throw new StateError("More than one element");
  +    if (length == 0) throw IterableElementError.noElement();
  +    throw IterableElementError.tooMany();
     }
   
     void removeRange(int start, int end) {
  
positive.code:   }
  
    void sort([int compare(a, b)]) {
      IterableMixinWorkaround.sortList(this, compare);
    }
  
    void shuffle([Random random]) {
      IterableMixinWorkaround.shuffleList(this, random);
    }
  
    int indexOf(element, [int start = 0]) {
      return IterableMixinWorkaround.indexOfList(this, element, start);
    }
  
    int lastIndexOf(element, [int start = null]) {
      return IterableMixinWorkaround.lastIndexOfList(this, element, start);
    }
  
    void clear() {
  
negative.code: 
      final count = end - start;
      if ((from.length - skipCount) < count) {
        throw IterableElementError.tooFew();
      }
  
      if (from is _TypedListBase) {
  