public static LogicOfTo <Arg <TOf>, TTo> New <TOf, TArg1, TArg2, TArg3, TArg4, TArg5, TTo>(this Func <TOf, TArg1, TArg2, TArg3, TArg4, TArg5, TTo> function) { Condition.Requires(function).IsNotNull(); var rv = new LogicOfTo <Arg <TOf>, TTo>( (x) => { return(function(x.As <TOf>(), x.As <TArg1>(), x.As <TArg2>(), x.As <TArg3>(), x.As <TArg4>(), x.As <TArg5>() )); }); return(rv); }