Marcin writes:
| The Haskell 98 Report says that fail in instance Monad IO invokes error.
| The Library Report says that fail in instance Monad IO raises a user
error.
|
| I would let it raise a user error, to be able to use fail in exception
| monads where strings suffice as the error type.
He's right. The instance declaration in the Prelude (p101) should say
instance Monad IO where
...
fail s = ioError (userError s)
This was always intended (see Library report p55, 11.1).
Other clarifications should be
* Index the reference to userError in Sec 7.3 of the Report
and give a type signature for userError
* In that same section, specify that fail s = ioError (userError s)
I'll do these as part of the (long-postponed) H98 report revision.
Any objections? I don't think this is controversial. Implementors take
note,
though.
Simon
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell