code: public static <T1, T2, T3, R> BiFunction<T1, T2, R> compose(Function<T3, R> unary, BiFunction<T1, T2, T3> binary) {
          dbc.precondition(unary != null, "cannot compose a null unary function");
          dbc.precondition(binary != null, "cannot compose a null binary function");
          return binary.andThen(unary);
      }
docs: Composes a function with a binary function.
  
  @param <T1> the first binary parameter type
  @param <T2> the second binary parameter type
  @param <T3> unary parameter type and binary return type
  @param <R> unary return type
  @param unary the function to be composed
  @param binary the binary function to be composed
  @return the composed binary function