public Ret Match<Ret>(Func<SUCCESS, Ret> Succ, Func<Seq<FAIL>, Ret> Fail) =>
     Check.NullReturn(MatchUnsafe(Succ, Fail));