class Fun {

    public static <K, V, R> BiFunction<K, V, Optional<R>>
    tryOrOptional2(final @NotNull ThrowingBiFunction<? super K, ? super V, R> mayThrowOnApply) {
        return compose2(result2(mayThrowOnApply), Result::toOptional);
    }

    private  Fun();

}