This is a pet peeve of mine; every time a new language feature comes along and somebody suggests using an attribute for it, it then turns out that there's a need to metaprogram over it, and the attribute doesn't support that. There's a long discussion of it here: Algebraic Effects. Notably this discussion predates typed throws, and although the solution to typed throws was slightly different, we can see how important moving throws/not into the type system was, to metaprogramming AsyncSequence.
4 Likes