docs: public static <V1,V2,T,R> Function2<V1, V2, R> andThen(final Function2<? super V1,? super V2, ? extends T> before, final Function1<? super T, ? extends R> after) {
  		if (after == null)
  			throw new NullPointerException("after");
  		if (before == null)
  			throw new NullPointerException("before");
  		return new Function2<V1, V2, R>() {
  			@Override
  			public R apply(V1 v1, V2 v2) {
  				return after.apply(before.apply(v1, v2));
  			}
  		};
  	}