public static Try <A> append <SEMI, A>(Try <A> lhs, Try <A> rhs) where SEMI : struct, Semigroup <A> => lhs.Append <SEMI, A>(rhs);
/// <summary> /// Append the Try(x) to Try(y). If either of the Trys throw then the result is Fail /// For numeric values the behaviour is to sum the Trys (lhs + rhs) /// For string values the behaviour is to concatenate the strings /// For Lst/Stck/Que values the behaviour is to concatenate the lists /// For Map or Set values the behaviour is to merge the sets /// Otherwise if the R type derives from IAppendable then the behaviour /// is to call lhs.Append(rhs); /// </summary> /// <param name="lhs">Left-hand side of the operation</param> /// <param name="rhs">Right-hand side of the operation</param> /// <returns>lhs + rhs</returns> public static Try <T> append <T>(Try <T> lhs, Try <T> rhs) => lhs.Append(rhs);