class Fun {

    public static <T, I, R> Function<T, R>
    compose1(final @NotNull Function<T, ? extends I> before, final @NotNull Function<? super I, ? extends R> after) {
        return before.andThen(after);
    }

    private  Fun();

}