Ralph writes,

  Unfortunately not, fail of IO fame has type
          IOError -> IO a
  and not
          String -> m a
  as Monad's new member.
  
  Here's my suggestion:
  o  Monad ((>>=), return, fail)
  o  throw (thanks Frank) instead of fail for the IO operation
  o  raise for Haskell-2's exception mechanism (raise and handle)?

Oops, good point.  `throw' in IO works fine; or if we don't want
to steal such a general name, `ioerror' seems sensible.  -- P




Reply via email to