I don\'t think it is a bug, but I am a bit puzzled as to why that doesn\'t work. A bonus question is why does it mention variable e? There is no variable e.
P
Try giving your handler the type SomeException -> IO x, where x is a concrete type, e.g.
SomeException -> IO x
import Control.Exception let f _ = putStrLn "error" :: SomeException -> IO () in handle f undefined