docs: public static <V,T,R> Function1<V, R> compose(final Function1<? super T, ? extends R> after, final Function1<? super V, ? extends T> before) {
  		if (after == null)
  			throw new NullPointerException("after");
  		if (before == null)
  			throw new NullPointerException("before");
  		return new Function1<V,R>() {
  			@Override
  			public R apply(V v) {
  				return after.apply(before.apply(v));
  			}
  		};
  	}