On Tue, Nov 23, 2004 at 04:12:52PM +0100, Johannes Waldmann wrote: > > >The other annoying thing is forcing it to run in the IO monad. > > necessarily so, since Haskell has non-strict semantics > so it's not so clear when an exception is actually raised > (you might have left the block that textually contained the offending > expression , and the exception handler, a long time ago)
I'm not sure I follow that. Let's say I have a function: myfunc :: String -> Int This does some sort of string parsing and returns an Int. Or it may raise an exception if it couldn't parse the string. But it would do that every time. Now, let's say we have a non-IO catchJust. Of course, if we never need the value, we never run the function -- or catchJust. If we do need the value, we run the function in the context of catchJust. If it raises our exception, catchJust handles it and returns some default. If it raises no exception, it's the same as having no handler at all. And if it raises some other exception, it's also the same as having no handler at all. So what am I missing here? _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
