Avatar
いいですね。
In following cases, beginAsync just has to crash the program when foo throws an error.
のくだりのあとぐらいに、 「rethrowsが含まれるコードのコンパイルが通っているのにクラッシュする可能性が残るというのはSwiftの検査例外の安全な世界を破壊してしまうし」 ってもうひと押しあると良いと思いました。 あと、
If beginAsync does not rethrow errors
に 「つまり、引数のbodyがthrowsで無いならば」 を付け足したほうが正確だと思います。 beginAsyncはrethrowsではないがbodyはthrowsという状態もシグネチャだけで言えばありえるからです(その場合、キャッチされた例外は全てクラッシュになるので今より悪くなるだけだけど)