I run into this myself as well. I ended up using Result
but the do/catch dance is quite annoying. You can add an async Result(catching:)
overload but that should just be reasync
in my personal opinion. We aren't likely getting reasync
though so this isn't a real option.
Luckily this is properly solved in the typed throws in the concurrency module pitch as Franz already mentioned.