test :: String
test = "aaa" >>=
return . toUpper
みたいにかけるのはいいかも
test :: String
test = "aaa" >>=
\x -> return $ toUpper x
はちょっとださい。
リストもモナドっていうのをたしかめたくて変なコード書いてる。String は Char のリストなのでモナドの演算ができるはず (直接やらないのは String のほうが出力しやすいから) うえのは単に map (\x -> toUpper x) "aaa" と一緒だから良さがよくわからないけど、リストモナドから要素を一個一個とりだして関数適用してるっぽいのはわかったかも。