テストでの値の比較
Either値をテストするときは値を直接比較する
値xをテストするときに、
値xがEitherの値である場合は、
次のように書くのは避けます。
isLeft x `shouldBe` True
このように書くとテストフレームワーク側に、 実際どのような値が入っていたのかの情報が伝わらないため、 テスト失敗時に情報がなくなってしまいます。
Eitherの値がShowとEqのインスタンスである場合は以下のように単純に比較できます。
x `shouldBe` Left "expected error"
Eqのインスタンスでない場合でも、
isLeftの結果をshouldBeに渡すよりは、
実際の中身の振る舞いを検査できる関数が、
テストフレームワーク側に用意されているはずなので、
それを使うべきです。