OK, I think we have enough agreement to decide: class Monad m where return :: m a (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b fail :: String -> m a fail s = error s (I'm still a bit nervous about capturing 'fail' but there seems to be fairly strong support for doing so.) class Monad m => MonadPlus m where mzero :: m a mplus :: m a -> m a -> m a IO.fail becomes IO.ioError Simon
- Re: MonadZero (concluded) Simon Peyton-Jones
- Re: MonadZero (concluded) Philip Wadler
- Re: MonadZero (concluded) Olaf Chitil
- Re: MonadZero (concluded) Ralf Hinze
- RE: MonadZero (concluded) Simon Peyton-Jones
- RE: MonadZero (concluded) S. Alexander Jacobson
- Re: MonadZero (concluded) Meurig Sage
- RE: MonadZero (concluded) Ralf Hinze
- Re: MonadZero (concluded) Lennart Augustsson
- RE: MonadZero (concluded) S. Alexander Jacobson
- RE: MonadZero (concluded) Christian Sievers