docs: @Pure
  	public static <P1, P2, P3, P4, RESULT> Function3<P2, P3, P4, RESULT> curry(
  			final Function4<? super P1, ? super P2, ? super P3, ? super P4, ? extends RESULT> function, final P1 argument) {
  		if (function == null)
  			throw new NullPointerException("function");
  		return new Function3<P2, P3, P4, RESULT>() {
  			@Override
  			public RESULT apply(P2 p2, P3 p3, P4 p4) {
  				return function.apply(argument, p2, p3, p4);
  			}
  		};
  	}