[Welcome back, Sigbjorn. Are you on the FFI mailing list?
Now you are back online you should be!]
| Export dynamic introduces a name, export static exports an
| existing name. For that reason putting this distinction in
| extent seems strange for me.
This seems like a good point to me.
foreign export foo :: Int -> IO Int
exports a C-callable function foo
*uses* a Haskell function foo :: Int -> IO Int
(that is, foo must be in scope)
foreign export dynamic baz :: (Int -> IO Int) -> IO Addr
does not export anything to C
*defines* a Haskell function baz with the type specified
(that is, the foreign decl binds baz)
This is rather different to 'foreign import' vs 'foreign import dynamic'
both of which import a function, but the type of the function depends
on whether it's dynamic.
PRINCIPLE: it should be possible to look at a foreign decl, and
*without looking at the extent string* say what Haskell function is
used or defined, and what its type is.
CONCLUSION: we need to say outside the extent string whether
we are doing foreign export or foreign export dynamic. I'm not
sure what the right syntax is
Simon
_______________________________________________
FFI mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/ffi