Fixes handling of Haskell exceptions with a custom exception handler

The Errno values returned by the exception handler were returned
without negating them. This led to client programs always reporting
'Numerical result out of range' instead of the actual errno value.