public virtual IOutcome <TCause, Tuple <TValue, TSecondSuccess> > AlongWith <TOtherFailure, TSecondSuccess>(IOutcome <TOtherFailure, TSecondSuccess> outcome) where TOtherFailure : Exception { return(outcome.AndThenTo( secondOutcome => Success.Of <TCause, Tuple <TValue, TSecondSuccess> >(Tuple.Create(value, secondOutcome)))); }