
Duncan Coutts wrote:
I was under the impression that with ghc, ffi import declarations like this do not escape the module:
foreign import ccall unsafe "foo.h foo" foo :: IO ()
However it seems that this one does:
foreign import ccall unsafe "curses.h & stdscr" stdscrp :: Ptr WINDOWptr
from: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mage-1.0
perhapsPbecause it's a pointer import it gets treated differently?
I just tried this and couldn't reproduce the problem. ----------------- module Test where import Foreign data WINDOWptr foreign import ccall unsafe "curses.h & stdscr" stdscrp :: Ptr WINDOWptr ----------------- Using -ddump-simpl we can see the declaration marked as NEVER inline, and indeed it doesn't appear in the .hi file. The code that does this is in DsForeign.csCImport, and it certainly looks like it handles the &foo case in addition to normal foreign calls. Maybe there's something else going on.. can you boil down the example at all? Cheers, Simon