非決定性とエラーを含む計算を ExceptT e [] モナドで扱おうとしてちょっとハマった。
これのMonadPlusインスタンスはExceptTによるorElse的な振る舞いで、下層のリストモナドの非決定性ではないという問題。
ある意味では非決定性とエラーの両者をMonadPlusというひとつの型クラスで扱っていることの問題とも言え、そういえば昔Haskell-cafeで「MonadPlusとMonadOrElseを分ける」という話があったと思い出した。
https://www.haskell.org/pipermail/haskell-cafe/2008-May/042644.html