code: @PublicEvolving
  	public <R> SingleOutputStreamOperator<R> reduce(
  			ReduceFunction<T> reduceFunction,
  			ProcessAllWindowFunction<T, R, W> function) {
  
  		TypeInformation<R> resultType = getProcessAllWindowFunctionReturnType(function, input.getType());
  
  		return reduce(reduceFunction, function, resultType);
  	}
docs: Applies the given window function to each window. The window function is called for each
  evaluation of the window for each key individually. The output of the window function is
  interpreted as a regular non-windowed stream.
  
  <p>Arriving data is incrementally aggregated using the given reducer.
  
  @param reduceFunction The reduce function that is used for incremental aggregation.
  @param function The process window function.
  @return The data stream that is the result of applying the window function to the window.