public static C Invoke <A, B, C>(TupledFunction <A, B, C> f, A p1, B p2) { return(f._f(p1, p2)); }
public static Func <A, B, C> _untup <A, B, C>(TupledFunction <A, B, C> f) => f._f;
public static DelayedFunction <Tuple <A, B>, C> delay <A, B, C>(TupledFunction <A, B, C> f, Tuple <A, B> param) { return(new DelayedFunction <Tuple <A, B>, C>(f, param)); }
public CurriedFunction(TupledFunction <A, B, C> f) : base(f._f) { is_tup = true; tupf = f; }