docs: public <R> GroupReduceOperator<T, R> reduceGroup(GroupReduceFunction<T, R> reducer) {
  		if (reducer == null) {
  			throw new NullPointerException("GroupReduce function must not be null.");
  		}
  
  		String callLocation = Utils.getCallLocationName();
  		TypeInformation<R> resultType = TypeExtractor.getGroupReduceReturnTypes(reducer, getType(), callLocation, true);
  		return new GroupReduceOperator<>(this, resultType, clean(reducer), callLocation);
  	}