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