>>353

>>343の「なんで?」は、>>329でいう「見返り」がなぜ、
>>330の「言語仕様で直接副作用を扱わなくてもよくなるアプリケーションプログラマには何のメリットもない見返り」と断定できるのか、断定できないでしょ、という修辞的疑問。
で、「Parsecをdo記法で書けるのはすげー便利だが」と次の段落で、アプリケーションプログラマにとってメリットのある見返りを例示する、というのが意図した文章構成。

> プログラムのレイアウトのレベルの問題だと思うのだが

そうだね。でも、do記法は実際にアプリケーションプログラマにとって便利だよね。
その便利な記法を、さまざまな型・用途に柔軟に使えるようにしているのが、HaskellのMonadクラス。

>>354
> 演算子を定義しても良い。>>351みたいに。

scala知らないからテキトーだが、>>351の例から推して量るに、例えば 「2001-01-03 10:10」っていうようなフォーマットを解析するのに
 number ~ "-" ~ number ~ "-" ~ number ~ " " ~ number ~ ":" ~ number ^^ { case (y,_,m,_d,_h,_,m) => (y,m,d,h,m) }
って書くのかな。

そういう一回リストや配列で返すことが強制されるよりも
do
 y <- number
 string "-"
 m <- number
 string "-"
 d <- number
 string " "
 h <- number
 string ":"
 m <- number
 return (y,m,d,h,m)
って書くほうが、読みやすく、仕様変更に応じて手を加えるのにミスしにくい、とオレは思う。
しかし、そうは思わないという人が多いのであれば、これ以上はなんとも。