モナドを書くときはdo記法が圧倒的に読みやすい

Haskellモナドを使ったコードを書くとき、2つの書き方があります。

>>=を使って真面目に書く方法とdo記法です。

前回のYesodによるプログラムを例にとって両者を比較してみます。

まずは>>=を使った書き方。

getUsers = getYesod
  >>= \users -> return $ aUsers users
  >>= \us    -> return us

次にdo記法。

getUsers = do
  users <- getYesod
  us    <- return $ aUsers users
  return us

比較するとdo記法が圧倒的に読みやすいと思います。
>>=を使った書き方の何が分かりにくいって、ある関数の結果の値が次の行を見ないと分からないことです。

対してdo記法の場合、関数実行の結果を受け取っているように見えるので、何をやっているかがつかみやすいと思います。

また読みやすさだけでなく書きやすさの面でも、do記法の方がタイプ量が減る傾向にあります。
せっかく用意されている便利な記法、do記法は積極的に使った方が良い気がします。

余談ですが

Haskellを学んでいると変数が少ない方がかっこよい、という価値観があるような気がします。$で関数の実行をつなぐより.で関数合成した方がかっこいい、という価値観。

でもこのスタイルで書かれたプログラムって、読むのが難しいと思うんですよね。
これって軟弱な感性かなぁ?