[Haskell-cafe] Real World Haskell Chapter 19 and GHC 6.10

Michael Mossey mpm at alumni.caltech.edu
Wed Oct 21 05:29:53 EDT 2009

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?


More information about the Haskell-Cafe mailing list