code: public static <T> Set<T> plus(Set<T> left, Collection<T> right) {
          return (Set<T>) plus((Collection<T>) left, right);
      }
docs: Create a Set as a union of a Set and a Collection.
  This operation will always create a new object for the result,
  while the operands remain unchanged.
  
  @param left  the left Set
  @param right the right Collection
  @return the merged Set
  @since 2.4.0
  @see #plus(Collection, Collection)