public static Exceptional <Func <T2, T3, T4, R> > Apply <T1, T2, T3, T4, R>(this Exceptional <Func <T1, T2, T3, T4, R> > AF, Exceptional <T1> ET1) => Apply(AF.Map(F.CurryFirst), ET1);
public static Exceptional <R> Apply <T, R>(this Exceptional <Func <T, R> > AF, Exceptional <T> ET) => AF.Match(err => err, f => ET.Map(f));