default <V> ThrowingFunction<V, R, E> compose(ThrowingFunction<? super V, ? extends T, ? extends E> before) {
        Objects.requireNonNull(before);
        return (V v) -> apply(before.apply(v));
    }
Functional interface that mirrors the Function interface, but allows for an
exception to be thrown.

@author oyving
vespajlib/src/main/java/com/yahoo/yolean/function/ThrowingFunction.java