class Fun {

    public static <R, S> Supplier<S>
    compose0(final @NotNull Supplier<? extends R> before, final @NotNull Function<? super R, ? extends S> after) {
        final Function<Nothing, S> composed = compose1(constantly1(before), after);
        return () -> composed.apply(Nothing.instance);
    }

    private  Fun();

}