class Fun {

    public static <T, R> Function<T, R>
    tryOrDefault1(final @NotNull ThrowingFunction<? super T, R> mayThrowOnApply, @Nullable R defaultValue) {
        return compose1(result1(mayThrowOnApply), result -> result.getOrDefault(defaultValue));
    }

    private  Fun();

}