Follow-up of GHC 9.6. It looks like the dependencies for GHC 9.6 now work, so that makes this a good opportunity to fix UUAGC(-cabal) as well.
Short summary of changes:
Replace ErrorT with ExceptT. ErrorT has been deprecated for a while, and ErrorT has existed since 2014 (added in transformers-0.4.0.0). I would have used some CPP pragma to keep it backwards compatible, but AG files don't seem to like those.
Import some monad functions from Control.Monad. I think some of them were removed from Prelude, causing the error. Importing them from Control.Monad should be fine for backwards compatibility.
Replace fail for the ST s monad with its original implementation. See https://github.com/haskell/core-libraries-committee/issues/33, the MonadFail instance of ST s was removed. Its original implementation was considered to be against the spirit of MonadFail.
Tested by running cabal build from GHC 9.6, 9.4, 9.2 and 9.0.
Follow-up of GHC 9.6. It looks like the dependencies for GHC 9.6 now work, so that makes this a good opportunity to fix UUAGC(-cabal) as well.
Short summary of changes:
ErrorT
withExceptT
.ErrorT
has been deprecated for a while, andErrorT
has existed since 2014 (added intransformers-0.4.0.0
). I would have used some CPP pragma to keep it backwards compatible, but AG files don't seem to like those.Control.Monad
. I think some of them were removed from Prelude, causing the error. Importing them fromControl.Monad
should be fine for backwards compatibility.fail
for theST s
monad with its original implementation. See https://github.com/haskell/core-libraries-committee/issues/33, theMonadFail
instance ofST s
was removed. Its original implementation was considered to be against the spirit of MonadFail.Tested by running
cabal build
from GHC 9.6, 9.4, 9.2 and 9.0.