https://x.com/rizkubo/status/2013122492244611503
↑ のポストへの返信を、読みやすいようにマークアップしたものです。
こちらも妥当な質問だと思います。まず主張をもう少し明確にさせてください。
まず、「for/doは[...]脱糖してるだけ」はその通りです。しかし、「プログラムの実行をある程度許して」というのは、for/doがプログラムの実行をする、と言いたかったのではなく、「自由でない >>= 演算が、一般に、なんらかの意味で部分的にプログラムを実行しており」「そういう、プログラムを部分的に実行するような >>= 演算についても合成を書きやすくするのが for/do という構文だ」「だから、for/do はそういう意味で .replaceExits の一般化になっている」という立場があり得るというのが僕の主張でした。