In docs/ffi-notes.txt,  I find the following:
 
------------------------------------------------------------
o foreign export static is not implemented.
 
  You can code around this by writing:
 
    foreign import dynamic foo_dynamic :: Addr -> (A -> B -> C)
    foreign label foo_addr :: Addr
    foo = foo_dynamic foo_addr
 
  instead of:
 
    foreign import foo :: A -> B -> C
-------------------------------------------------------------------------
Does anyone understand what this is saying? I can't grok it.
 The work around presented here seems to have nothing to do with
foriegn export static. It looks like a workaround to not having foreign
IMPORT static. (Which we of course dont need a workaround for :)).
 Is something extremely tricky going on or am i just dense?
 
Anyway, just curious, I have not had any trouble working around by
passing pointers to the C-side using foreign export dynamic.
I have just wondered about this for a long long time :)