/**
  * Returns a composed function that first applies this CheckedFunction6 to the given argument and
  * then applies {@linkplain CheckedFunction1} {@code after} to the result.
  *
  * @param <V> return type of after
  * @param after the function applied after this
  * @return a function composed of this and after
  * @throws NullPointerException if after is null
  */
 default <V> CheckedFunction6<T1, T2, T3, T4, T5, T6, V> andThen(
     CheckedFunction1<? super R, ? extends V> after) {
   Objects.requireNonNull(after, "after is null");
   return (t1, t2, t3, t4, t5, t6) -> after.apply(apply(t1, t2, t3, t4, t5, t6));
 }
 /**
  * Returns a composed function that first applies this CheckedFunction2 to the given argument and
  * then applies {@linkplain CheckedFunction1} {@code after} to the result.
  *
  * @param <V> return type of after
  * @param after the function applied after this
  * @return a function composed of this and after
  * @throws NullPointerException if after is null
  */
 default <V> CheckedFunction2<T1, T2, V> andThen(CheckedFunction1<? super R, ? extends V> after) {
   Objects.requireNonNull(after, "after is null");
   return (t1, t2) -> after.apply(apply(t1, t2));
 }