Typing f.e.d.

Sven Panne Sven.Panne at informatik.uni-muenchen.de
Sun Feb 11 11:01:23 EST 2001

I have a small change request regarding foreign export dynamic.
Currently the FFI doc says:

   : ...
   | 'foreign' 'export' [callconv] 'dynamic' varid :: prim_type -> IO Addr

GHC additionally allows:

   prim_type -> IO Ptr

As usual the FFI "looks through" newtypes.  But now that we have
FunPtr, the following typing makes much more sense:

   'foreign' 'export' [callconv] 'dynamic' varid :: prim_type -> IO (FunPtr prim_type)

where both prim_types have to be the *same*. We should probably allow
the old Addr-typing as well for some time to facilitate the transition,
but not the Ptr-typing (bleeding edge people will know what to do :-).
The corresponding changes to GHC look easy, so I'd like to commit this
if there are no objections.

Furthermore, the FFI docs still talk about Addr only, not Ptr/FunPtr.
Now that Addr is deprecated, this should be changed, too.


More information about the FFI mailing list