MonadError type class, \/ implementation, tests.
EitherT implementation.