On the topic of exceptions in GHC,

Section 3.7 of the Haskell Libraries document (on the ghc website) says:

   "Note: GHC currently doesn't generate the arithmetic or the async 
    exceptions."

This still seems to be the case in 4.09

Does it implement the "NonTermination" exception? Or perhaps what I should ask
is: does the "NonTermination" exception correspond to black hole detection.

If I have:

   catchAll (show (let bot = bot in bot::Int)) (\x -> return (show x))

I don't catch the non-termination exception, however I expect that I ought
to.

Perhaps I am misinterpreting this aspect of the exception mechanism.

Also, approximately how far away is the generation of arithmetic and 
asynchronous exceptions?



On a slightly different note I was quite surprised to find that
(1/0)::Float gave me back a value "Infinity" rather than causing 
an exception to occur. I noticed in the "ArithException" data-type that there
is a constructor "DivideByZero". Is it expected that when arithmetic
exceptions are implemented (1/0)::Float will throw such an exception rather 
than returning "Infinity"?

Thanks very much,
Bernie Pope.

Reply via email to