> This is due to the nature of exceptions in Haskell. Evaluating the > expression (do a <- getLine; hPutStrLn ...) does not do any IO, and it > doesn't raise any exceptions, so the mapException doesn't get to > annotate any exceptions.
Urgh, so the automatic annotation I suggested suffers from two problems: 1) It gives the call by name call stack when we usually want the call by value call stack. 2) It would have to be done in a type-sensitive way. Functions which return an IO result need to be annotated with mapExceptionIO while others need to be annotated with mapException. (For that matter, anyone defining 'sum = foldr (+) 0' will want a 3rd variant of mapException for use with CAFs whose value is a 1,2,3,etc-argument function.) Hmmmm, I'll bet Oleg can come up with a cunning pattern of type classes for this purpose :-). -- Alastair Reid _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
