public static Outcome <TResult> Switch <T, TResult>(this Outcome <T> @this, params Func <Switchable <T>, (bool, Func <Outcome <TResult> >)>[] branches)
 public static Outcome <Nop> DiscardResult <T>(this Outcome <T> @this)
 => @this.IsSuccessful ? Outcome.Any() : Outcome.Reject(@this.FailureOrThrow());