anchor.diff:      List$Rest $outer$ceylon$language$List$Rest;
       List $capture$$o;
       List$Rest$$anonymous$2_([List$Rest this.$outer$ceylon$language$List$Rest, List this.$capture$$o]) {
  -        i = 0;
  -    }
  -    $dart$core.int i;
  +        _$i = 0;
  +    }
  +    $dart$core.int _$i;
       $dart$core.Object next() => (() {
  -        if (i < $outer$ceylon$language$List$Rest.size) {
  -            return List.$getElement($capture$$o, $outer$ceylon$language$List$Rest.from + (() {
  -                $dart$core.int tmp$85 = i;
  -                i = Integer.nativeValue(Integer.instance(i).successor);
  +        if (_$i < $outer$ceylon$language$List$Rest.size) {
  +            return List.$_$getElement($capture$$o, $outer$ceylon$language$List$Rest._$from + (() {
  +                $dart$core.int tmp$85 = _$i;
  +                _$i = Integer.nativeValue(Integer.instance(_$i).successor);
                   return tmp$85;
               })());
           } else {
  
positive.code: }
  class List$Rest implements List {
      List $outer$ceylon$language$List;
      List$Rest([List this.$outer$ceylon$language$List, $dart$core.int this.from]) {
          if (!(from >= 0)) {
              throw new AssertionError("Violated: from>=0");
          }
      }
      $dart$core.int from;
      $dart$core.Object getFromFirst([$dart$core.int index]) => (() {
          if (index < 0) {
              return null;
          } else {
              return $outer$ceylon$language$List.getFromFirst(index + from);
          }
      })();
      $dart$core.int get lastIndex => (() {
          $dart$core.int size = $outer$ceylon$language$List.size - from;
          return size > 0 ? size - 1 : null;
      })();
      List measure([Integer from, $dart$core.int length]) => $outer$ceylon$language$List.measure(Integer.instance(Integer.nativeValue(from) + this.from), length);
      List span([Integer from, Integer to]) => $outer$ceylon$language$List.span(Integer.instance(Integer.nativeValue(from) + this.from), Integer.instance(Integer.nativeValue(to) + this.from));
      List spanFrom([Integer from]) => $outer$ceylon$language$List.spanFrom(Integer.instance(Integer.nativeValue(from) + this.from));
      List spanTo([Integer to]) => $outer$ceylon$language$List.span(Integer.instance(this.from), Integer.instance(Integer.nativeValue(to) + this.from));
      List clone() => new List$Rest($outer$ceylon$language$List.clone(), from);
      Iterator iterator() => (() {
          List o = $outer$ceylon$language$List;
          return new List$Rest$$anonymous$2_(this, o);
  
negative.code:         if (((Integer.nativeValue(from) > lastIndex) || (length <= 0)) || ((Integer.nativeValue(from) + length) <= 0)) {
              return $package$empty;
          } else if (Integer.nativeValue(from) < 0) {
              return new ArraySequence(_$array.measure(Integer.instance(0), length + Integer.nativeValue(from)));
          } else {
              return new ArraySequence(_$array.measure(from, length));
          }
      }
      Sequential span([Integer from, Integer to]) {
          if (Integer.nativeValue(from) <= Integer.nativeValue(to)) {
              return ((Sequential $lhs$) => $lhs$ == null ? new ArraySequence(_$array.span(from, to)) : $lhs$)((Integer.nativeValue(to) < 0) || (Integer.nativeValue(from) > lastIndex) ? $package$empty : null);
          } else {
              return ((Sequential $lhs$) => $lhs$ == null ? new ArraySequence(_$array.span(from, to)) : $lhs$)((Integer.nativeValue(from) < 0) || (Integer.nativeValue(to) > lastIndex) ? $package$empty : null);
          }
      }
      Sequential spanFrom([Integer from]) => ((Sequential $lhs$) => $lhs$ == null ? new ArraySequence(_$array.spanFrom(from)) : $lhs$)(Integer.nativeValue(from) > lastIndex ? $package$empty : null);
      Sequential spanTo([Integer to]) => ((Sequential $lhs$) => $lhs$ == null ? new ArraySequence(_$array.spanTo(to)) : $lhs$)(Integer.nativeValue(to) < 0 ? $package$empty : null);
      $dart$core.int firstOccurrence([$dart$core.Object element]) => _$array.firstOccurrence(element);
      $dart$core.int lastOccurrence([$dart$core.Object element]) => _$array.lastOccurrence(element);
      $dart$core.bool occurs([$dart$core.Object element]) => _$array.occurs(element);
      $dart$core.bool equals([$dart$core.Object that]) => List.$equals(this, that);
      $dart$core.int get hashCode => List.$get$hash(this);
      $dart$core.String toString() => Sequence.$get$string(this);
  