
I've gone through and put in a best guess for the stability/portability status, so let me know if you think any are wrong (Hugs, NHC folks: remember that every module marked "portable" is expected to be available on all implementations - so if any of these are going to cause problems, let me know).
(Without having looked at it at all) I'm half expecting to have to tweak the Foreign interface a bit since the low level grungy stuff is where compiler differences are hardest to hide.
I hope you won't have to change it, but we can discuss it on ffi@haskell.org if there's anything that will be too hard to implement in Hugs (actually, I seriously doubt it because if you can run H/Direct and green card code on Hugs, the Foreign libraries are just a different veneer over the primitives).
Does it work on NHC? (In which case changes are a lot less likely)
I remember that one of the ForeignObj-like datatypes pretty much requires threads to implement it because the finaliser is an arbitrary piece of Haskell code. This would be hard to support in Hugs and I expect NHC would have problems too.
I seem to recall NHC having some difficulty with this... Malcolm? Cheers, SImon