I am currently playing with the new cadre of failure libraries, and I'm
trying to figure out how to use the monadic version of Failure while
also getting the Try typeclass, which appears to be the standardized mechanism
for marshalling values from specific monads into the failure monad.
Unfortunately, it only seems to be defined when I import Control.Failure,
and this module is fairly incompatible with Control.Monad.Failure, as
demonstrated by this GHCI transcript:
ezyang@javelin:~/Documents/tmr$ ghci
Prelude> :m +Control.Failure
Prelude Control.Failure> :m +Control.Monad.Failure
Prelude Control.Failure Control.Monad.Failure> :t failure
<interactive>:1:0:
Ambiguous occurrence `failure'
It could refer to either `Control.Failure.failure', imported from Control.Failure
or `Control.Monad.Failure.failure', imported from Control.Monad.Failure
I'm using MTL, which might be the reason why there's all sorts of unhappiness. :-)
Cheers,
Edward
_______________________________________________
Haskell-Cafe mailing list
Haskel...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Why are you importing both Control.Failure and Control.Monad.Failure
when the latter just re-exports the former? Are you using the latest
versions of the two packages? Try importing just
Control.Monad.Failure.MTL; that provides the MTL failure instances and
also re-exports Control.Failure.
Alex
That's correct. I imported both when Control.Monad.Failure.MTL failed
to expose try:
ezyang@javelin:~/Dev/wizard$ ghci
Prelude> :m +Control.Monad.Failure.MTL
Prelude Control.Monad.Failure.MTL> :t try
<interactive>:1:0: Not in scope: `try'
Which, doesn't really seem like it should be the case.
What version of the packages are you using? Can you give the output of:
ghc-pkg list|grep failure
Michael
Sure thing:
(control-monad-failure-0.4), (control-monad-failure-0.5.0),
control-monad-failure-mtl-0.5.0, cpphs-1.8, cpphs-1.9,
failure-0.0.0.1, happstack-0.3.2, happstack-data-0.3.3
Additionally:
ezyang@javelin:~$ cabal upgrade failure
Resolving dependencies...
No packages to be installed. All the requested packages are already installed.
If you want to reinstall anyway then use the --reinstall flag.
Upgrade to control-monad-failure-mtl 0.6.0 and control-monad-failure 0.6.0.
Alex
Sorry my bad; I should have been importing Control.Monad.Failure.MTL.
The error has gone away.
Cheers,
Edwadrd