That's probably because Control.Monad.Trans.Error is deprecated since
transformers-0.4 [1] [2]. Indeed, the `Error` class does not exist anymore.
For `ExceptT`, we don't need to deal with `Error` anymore and there is no
restriction on the error type.

From the change log of mtl-2.2.1:
- Fix deprecation warnings caused by transformers 0.4 deprecating `ErrorT`

https://github.com/ekmett/mtl/blob/master/CHANGELOG.markdown


[1] https://hackage.haskell.org/package/transformers-0.4.1.0/docs/Control-Monad-Trans-Error.html
[2] https://hackage.haskell.org/package/transformers-0.4.1.0/docs/Control-Monad-Trans-Except.html

2014-09-15 4:13 GMT+08:00 Francesco Ariis <fa-ml@ariis.it>:
On Sun, Sep 14, 2014 at 12:40:56PM -0700, Karl Voelker wrote:
> I just discovered that Control.Monad.Error [1] has recently become
> deprecated in favor of Control.Monad.Except [2], and I am curious about
> what motivated the change. Can anyone explain?

I discovered it recently too, in a search for a package similar to ``either``
but which didn't rely on template-haskell.

Not a maintainer, so just a wild guess: maybe it is because the new module
hasn't got the ``class Error`` (and people wanted to get rid of it) and
general less hairiness?

The commits/changelog don't contain other info:

https://github.com/ekmett/mtl/commits/master/Control/Monad/Except.hs
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe