code: public static <T> Collection<T> plus(Iterable<T> left, Iterable<T> right) {
          return plus(asCollection(left), asCollection(right));
      }
docs: Create a Collection as a union of two iterables. If the left iterable
  is a Set, then the returned collection will be a Set otherwise a List.
  This operation will always create a new object for the result,
  while the operands remain unchanged.
  <pre class="groovyTestCase">assert [1,2,3,4] == [1,2] + [3,4]</pre>
  
  @param left  the left Iterable
  @param right the right Iterable
  @return the merged Collection
  @since 2.4.0