ForeignPtrContents isn't exported
GHC.ForeignPtr doesn't export ForeignPtrContents. This means that this function can't be given a signature in user code:
f (ForeignPtr _ x) = x
ForeignPtrContents should be exported, at least abstractly, although exporting the constructors, too, would be useful for low-level code.