code: public static <T, R> Supplier<R> compose(Function<T, R> f, Supplier<T> g) {
          dbc.precondition(f != null, "cannot compose supplier with a null function");
          dbc.precondition(g != null, "cannot compose function with a null supplier");
          return () -> f.apply(g.get());
      }
docs: Composes a function with a supplier (function ° supplier).
  
  Given f, g yields f ° g (f of g, f following g).
  
  @param <T> the function and supplier parameter type
  @param <R> the function return type
  @param f the function to be composed
  @param g the supplier to be composed
  @return the composed supplier