
21 Oct
2009
21 Oct
'09
5:29 a.m.
The examples in the "error handling" chapter (19) of RWH don't run under GHC 6.10. For instance, an example might be main = handle (\_ -> putStrLn "error") (print $ 5 `div` 0) Trying to load this results in "amigous type variable 'e' in the constraint: 'Exception e' arising from a use of 'handle' etc etc. I was able to fix this via the ludicrously complex: main2 = (handle :: (SomeException -> IO ()) -> IO () -> IO ()) (\_ -> putStrLn "Error calculating result") (print $ 5 `div` 0) Is there a more concise way to use "handle", or can someone point me to a tutorial that might explain the changes in 6.10 and in a general way how to get the RWH examples to run? Thanks, Mike