W pipe3Func<T, U, V, W>( final Func0<T> f1, final Func1<T, U> f2, final Func1<U, V> f3, final Func1<V, W> f4, ) => f4(f3(f2(f1())));