
I'm not sure if you're talking about C++ ABIs or C ABIs? If you're already using a C ABI, and you're getting incompatibilities, well I have nothing useful to say :-) If you're talking about C++ ABIs, technically it's possible to use a Generator to drop-down into a C ABI, pump across the interface at a C level, function by function, then wrap back into C++ classes. The advantage is that you decouple the classes on either side of the interface, so it's possible to add new methods to the classes without breaking anything. (Warning: I have no idea to what extent what I just wrote relates to ghc etc. I did make a generator to cross a C++ ABI boundary before, to link an msvc C++ dll with a mingw C++ exe: http://spring.clan-sy.com/phpbb/viewtopic.php?t=7991 )