code: public static <T> Iterable<T> concat(Iterable<? extends T>... inputs) {
      return concat(ImmutableList.copyOf(inputs));
    }
docs: Combines multiple iterables into a single iterable. The returned iterable
  has an iterator that traverses the elements of each iterable in
  {@code inputs}. The input iterators are not polled until necessary.
  
  <p>The returned iterable's iterator supports {@code remove()} when the
  corresponding input iterator supports it.
  
  @throws NullPointerException if any of the provided iterables is null