下の感じのコードを書いたら、 do let ... if ... then ... else ... インデント間違えてへんか?みたいなエラーが出まして、どうも、elseは ifよりも下げないといけないようだ、Haskell的には。 なんでifとelse揃えたらあかんのやー WikiBookのdo within ifってところに書いてあった。doのなかでインデント揃えちゃうと;が入ってるものとみなされるから do { first thing ; if condition ; then foo ; else bar ; third thing } と解釈されてしまうらしい。
![Haskellのインデント](https://cdn-ak-scissors.b.st-hatena.com/image/square/e3356803e0ca2fbf81750674b5e9ef63e7a486bc/height=288;version=1;width=512/http%3A%2F%2Fwww.kzfmix.com%2Fimages%2Fogp%2Fogp_logo.jpg)