MonadFail instance for (Either String)?
I think one of the cool things about breaking out
MonadFail would be the opportunity to introduce an instance for
Either String, which isn’t possible to do with plain
Monad without overlapping instances. The instance itself would be completely trivial:
instance MonadFail (Either String) where fail = Left
The only possible reason to not do this, as far as I can tell, would be because it requires
FlexibleInstances. This already seems to be used for a few instances in
base, and it seems like it would be extremely useful, so I would really appreciate if such an instance was defined. I’d be happy to submit a patch to add it, but I wasn’t sure if this would be an uncontroversial change or not.