The problem#
Compiling the Haskell package language-python (a
dependency of xcffib), I got the following warning stating
that the typeclass Error
is deprecated:
language-python/src/Language/Python/Common/ParseError.hs:25:10: warning: [-Wdeprecations]
In the use of type constructor or class ‘Error’
(imported from Control.Monad.Error.Class, but defined in Control.Monad.Trans.Error):
Deprecated: "Use Control.Monad.Trans.Except instead"
|
25 | instance Error ParseError where
| ^^^^^
I wasn't sure how to "Use Control.Monad.Trans.Except
instead", as Except
is not a drop-in replacement for Error
.
The solution#
As this StackOverflow answer recommended,
Short answer is: Replace
Error
by nothing at all
The code used throwError
, which I replaced with
throwError = lift . Left
Other than that, I just removed the import
s of Control.Monad.Error
and the typeclass instance of Error
. The full diff is
in this pull request.