code: public static <T> Ix<T> fromArrayRange(int start, int end, T... values) {
          if (start < 0 || end < 0 || start > values.length || end > values.length) {
              throw new IndexOutOfBoundsException("start=" + start + ", end=" + end + ", length=" + values.length);
          }
          return new IxFromArray<T>(start, end, values);
      }
docs: Emits a range of elements from the given array.
  <p>
  The result's iterator() doesn't support remove().
  @param <T> the value type
  @param start the staring index, inclusive, non-negative
  @param end the end index, exclusive, non-negative
  @param values the array of values
  @return the new Ix instance
  @throws NullPointerException if values is null
  @throws IndexOutOfBoundsException if either start or end are not in [0, values.length]
  @since 1.0