anchor.diff:     *     list1.setRange(1, 3, list2, 3);
      *     list1.join(', '); // '1, 8, 9, 4'
      *
  -   * The [start] and [end] indices must satisfy `0 ≤ start ≤ end ≤ length`.
  -   * If [start] equals [end], this method has no effect.
  +   * The provide range, given by [start] and [end], must be valid.
  +   * A range from [start] to [end] is valid if `0 <= start <= end <= len`, where
  +   * `len` is this list's `length`. The range starts at `start` and has length
  +   * `end - start`. An empty range (with `end == start`) is valid.
      *
      * The [iterable] must have enough objects to fill the range from `start`
      * to `end` after skipping [skipCount] objects.
      *
  -   * If `iterable` is this list, the operation will copy the elements originally
  -   * in the range from `skipCount` to `skipCount + (end - start)` to the
  -   * range `start` to `end`, even if the two ranges overlap.
  +   * If `iterable` is this list, the operation will copies the elements
  +   * originally in the range from `skipCount` to `skipCount + (end - start)` to
  +   * the range `start` to `end`, even if the two ranges overlap.
      *
      * If `iterable` depends on this list in some other way, no guarantees are
      * made.
  
positive.code:    * Sets the objects in the range [start] inclusive to [end] exclusive
     * to the given [fillValue].
     *
     * An error occurs if [start]..[end] is not a valid range for `this`.
     */
    void fillRange(int start, int end, [E fillValue]);
  
  
negative.code:    * Returns an [Iterable] that iterates over the objects in the range
     * [start] inclusive to [end] exclusive.
     *
     * The provide range, given by [start] and [end], must be valid at the time
     * of the call.
     *
     * A range from [start] to [end] is valid if `0 <= start <= end <= len`, where
     * `len` is this list's `length`. The range starts at `start` and has length
     * `end - start`. An empty range (with `end == start`) is valid.
     *
     * The returned [Iterable] behaves like `skip(start).take(end - start)`.
     * That is, it does *not* throw if this list changes size.
     *
     *     List<String> colors = ['red', 'green', 'blue', 'orange', 'pink'];
     *     Iterable<String> range = colors.getRange(1, 4);
  