
Brandon S. Allbery KF8NH wrote:
On May 8, 2009, at 16:31 , Sittampalam, Ganesh wrote:
Brandon S. Allbery KF8NH wrote:
Unless it catches exceptions itself (which strikes me as a bad idea; it becomes a trivial way to ignore exceptions, leading to bad programming practices) either they're handled inside the _|_ (in which case it isn't _|_ from the standpoint of our test) or in an outer scope (in which case our test produces _|_ from the standpoint of the exception handler).
Surely it just needs to inspect the thunk to decide whether it's _|_ or not, rather than entering it?
The point is it can never be given a thunk that is _|_ because exception handling will have either converted it to a non-_|_ or shunted past the test.
You can set up a thunk in one place, enter it wrapped in a catch in another place, and then inspect it in a third place, e.g. (somewhat pseudo-code): do let x = if 1==1 then error "foo" else 3 y <- catch (evaluate x) (\_ -> 2) b <- isEvaluated x Cheers, Ganesh =============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ===============================================================================