[Haskell-cafe] Use of the Try typeclass

Alexander Dunlap alexander.dunlap at gmail.com
Thu Dec 31 00:06:58 EST 2009


On Wed, Dec 30, 2009 at 5:52 PM, Edward Z. Yang <ezyang at mit.edu> wrote:
> Hello all,
>
> 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 at 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
> Haskell-Cafe at 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


More information about the Haskell-Cafe mailing list