code: public static <T1, T2, T3, R> BiFunction<T2, T3, R> curry(TriFunction<T1, T2, T3, R> function, T1 first) {
          dbc.precondition(function != null, "cannot bind parameter of a null function");
          return (second, third) -> function.apply(first, second, third);
      }
docs: Partial application of the first parameter to a ternary function.
  
  @param <T1> the function first parameter type
  @param <T2> the function second parameter type
  @param <T3> the function third parameter type
  @param <R> the function return type
  @param function the function to be curried
  @param first the value to be curried as first parameter
  @return the curried binary function