code: @SuppressWarnings("unchecked")
      public static <T> Ix<T> concat(Iterable<? extends T> source1, Iterable<? extends T> source2) {
          return concatArray(nullCheck(source1, "source1 is null"), nullCheck(source2, "source2 is null"));
      }
docs: Concatenates the elements of two Iterable sources sequentially
  <p>
  The result's iterator() forwards the remove() calls to the current iterator.
  <p>
  Note that merge and concat operations are the same in the Iterable world.
  @param <T> the value type
  @param source1 the first source, not null
  @param source2 the second source, not null
  @return the new Iterable source
  @throws NullPointerException if any of the sources is null
  @since 1.0