While this seems to work fine when used in a simple program, when I load it in ghci, it segfaults about half the time. Don't know why, and seems ghci specific, but if I get reports of crashes, I'll need to look into that.
This is an unholy mashup, but it just might work. It works on Linux, that's all I've tested. :)