code: @SafeVarargs
  	public final DataStream<T> union(DataStream<T>... streams) {
  		List<StreamTransformation<T>> unionedTransforms = new ArrayList<>();
  		unionedTransforms.add(this.transformation);
  
  		for (DataStream<T> newStream : streams) {
  			if (!getType().equals(newStream.getType())) {
  				throw new IllegalArgumentException("Cannot union streams of different types: "
  						+ getType() + " and " + newStream.getType());
  			}
  
  			unionedTransforms.add(newStream.getTransformation());
  		}
  		return new DataStream<>(this.environment, new UnionTransformation<>(unionedTransforms));
  	}
docs: Creates a new {@link DataStream} by merging {@link DataStream} outputs of
  the same type with each other. The DataStreams merged using this operator
  will be transformed simultaneously.
  
  @param streams
  The DataStreams to union output with.
  @return The {@link DataStream}.