anchor.diff:      if (step == 0) {
         throw new ArgumentError("step must not be 0");
       }
  +
  +    return new Range._(start, stop, step);
     }
  +
  +  Range._(this.start, this.stop, this.step);
   
     Iterator<int> get iterator {
         return new RangeIterator(start, stop, step);
  
positive.code: library range;
  import "dart:collection";
  class Range extends Object with IterableMixin<int> {
    Range(int this.start, [int this.stop, int this.step = 1]) {
      if (stop == null ) { // reverse stop and start making start 0
        stop = start;
        start = 0;
  
negative.code:             step == other.step);
    }
  
    final int start;
    final int stop;
    final int step;
  }
  
  