[Haskell-cafe] Inverting a Monad

Bas van Dijk v.dijk.bas at gmail.com
Wed Feb 6 09:21:26 EST 2008


On Feb 6, 2008 12:51 PM, Bas van Dijk <v.dijk.bas at gmail.com> wrote:
> I will try out requiring 'm' to have a 'MonadError' constraint and see how far I come
> with that.

I'm now trying to define 'inv' using 'catchError` but I can't get it to work.

The following obviously doesn't work:

import Control.Monad.Error

inv :: MonadError e m => m a -> m ()
inv m = (m >> fail "") `catchError` \_ -> (return ())

Bas


More information about the Haskell-Cafe mailing list