package com.linkedin.parseq.function; import java.util.Objects; import com.linkedin.parseq.function.Function1; @FunctionalInterface public interface Function4<T1, T2, T3, T4, R> { R apply(T1 t1, T2 t2, T3 t3, T4 t4) throws Exception; default <V> Function4<T1, T2, T3, T4, V> andThen(Function1<? super R, ? extends V> f) { Objects.requireNonNull(f); return (T1 t1, T2 t2, T3 t3, T4 t4) -> f.apply(apply(t1, t2, t3, t4)); } }