public default <V> TriFunction<A, B, C, V> andThen(final Function<? super R, ? extends V> after) {
        Objects.requireNonNull(after);
        return (A a, B b, C c) -> after.apply(apply(a, b, c));
    }
Returns a composed function that first applies this function to its input, and then applies the after function
to the result. If evaluation of either function throws an exception, it is relayed to the caller of the composed
function.

@param after the function to apply after this function is applied
@param <V>   the type of the output of the {@code after} function, and of the composed function
@return a composed function that first applies this function and then applies the {@code after} function.
@throws NullPointerException if {@code after} is null
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/function/TriFunction.java