code: public static <V,T,R> Function1<V, R> andThen(final Function1<? super V, ? extends T> before, final Function1<? super T, ? extends R> after) {
  		return compose(after, before);
  	}
docs: Returns a composed function that first applies the {@code before}
  function to its input, and then applies the {@code after} function to the result.
  If evaluation of either function throws an exception, it is relayed to
  the caller of the composed function.
  
  @param <V> the type of input to the {@code before} function, and to the composed function
  @param <T> the type of output of the {@code before} function, and input to the {@code after} function
  @param <R> the type of output to the {@code after} function, and to the composed function
  @param before the function to apply before the after function is applied
  @param after the function to apply after the before function is applied
  @return a composed function that first applies the {@code before}
  function and then applies the {@code after} function
  @throws NullPointerException if {@code before} or {@code after} is <code>null</code>
  
  @see #compose(Functions.Function1, Functions.Function1)
  @since 2.9