他に有用なMonadをみてみよう。Scala標準ライブラリにもあるEitherだ。 Scala2.11以前は、EitherはmapもflatMapも持っていなかったため、EitherはMonadとはいえなかった。 Scala2.12以降は、Eitherはrightに寄せる(biased)ようになったため、Monadと呼べるようになった。
Scala2.11ではEitherはmapもflatMapメソッドも持っていなかった。そのためScala2.11でのEitherはfor文の中では使いづらかった。各ジェネレータの中で毎回.rightを呼ばなければならなかった。