We discussed this before and agreed that any uncaught exception in a call back from C to Haskell land aborts the program. If the exceptions is to be propagated from the call back to the main application, it is the FFI user's responsibility to arrange this.
(I believe that this is actually noted somewhere in the current spec, if it isn't it should, though.)
I couldn't see it in the spec and I'm working on the code that implements it at the moment so I thought I'd check instead of assuming or relying on a (probably imperfect) scan of the mail archives. Unless responses to my requests for clarification point to particular sections in the spec., I intend to amend the spec. to match responses. (I decided to hold off on modifications to the spec until I have a complete implementation that passes a reasonably large set of tests rather than doing it a bit at a time and getting bits wrong because I lack a complete enough picture.) -- Alastair Reid reid@cs.utah.edu http://www.cs.utah.edu/~reid/