On Sun, Oct 01, 2006 at 02:08:35AM +0200, Yitzchak Gale wrote:
> An important clarification: the main monad at work
> here is the Exit monad. The "bind" notation in a
> pattern guard is just an obfuscated Exit monad.
> However, in many simple examples, the Maybe monad
> can be used as a special case of the Exit monad.

You don't use >>=, just >>.  Similarly Exit is used only in the form
Exit e (), which is equivalent to Maybe e, i.e. if we define

        exitMaybe :: Exit e () -> Maybe e
        exitMaybe (Continue _) = Nothing
        exitMaybe (Exit e) = Just e

then we have

        runExit m = fromJust (exitMaybe m)
        exitMaybe (x >> y) = exitMaybe x `mplus` exitMaybe y
        exitMaybe (maybeExit m) = m

so we can replace the Exit monad with Maybe.

        

_______________________________________________
Haskell-prime mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to