Hello,

> readM with fail defaults to ioError for almost all Monads, and so admits
> many dangerous programs, which is against the intent of the proposal
> in the first place.
>

ioError is only in the IO monad and is catchable. I think the problem is when fail defaults to error which can be anywhere and is not catchable.

> It seems with Conor's suggestion of a
>
>     maybeReturn :: MonadPlus m => Maybe a -> m a
>     maybeReturn = maybe mzero return
>
> we can still have the by-default-safe maybeRead, that doesn't admit
> exception throwing opportunities.
>

Isn't the MonadPlus approach also by-default-safe?

-Jeff

---

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.