code: @Nonnull
      public static <A> ImmutableList<A> fromBounded(@Nonnull A[] el, int start, int end) {
          if (end == start) {
              return empty();
          }
          NonEmptyImmutableList<A> l = cons(el[end - 1], ImmutableList.empty());
          for (int i = end - 2; i >= start; i--) {
              l = cons(el[i], l);
          }
          return l;
      }
docs: A helper constructor to create a potentially empty {@link ImmutableList} from part of an array.
  
  @param el    Elements of the list
  @param start The index to start conversion
  @param end   The index before which the conversion stops. <code>end</code> will not be used as
  an index to access <code>el</code>
  @param <A>   The type of elements
  @return a <code>ImmutableList</code> of type <code>A</code>.