FFI typing issues [was: Typing f.e.d.]

Simon Marlow simonmar at microsoft.com
Mon Apr 30 10:56:19 EDT 2001

> The first one is the typing of `foreign import dynamic', which is
> documented as
>    Addr -> (prim_args -> IO prim_result)

(actually the Addr can currently be 'Ptr a' or 'FunPtr a' too).

> GHC currently implements more or less `Addr -> prim_type', 
> but that's not
> the point here. I propose changing this to
>    FunPtr prim_type1 -> prim_type2   -- where prim_type1 == prim_type2
> again deprecating and keeping the old typing. Apart from the purely
> technical `IO' (hmmmm, is this *really* necessary?), it makes things
> almost symmetrical to f.e.d.

Looks reasonable to me.

> Another point is the typing of `foreign label', which is 
> currently simply
>    Addr
> I propose to change this to *two* possible typings:
>    Ptr a
>    FunPtr a

I think it's currently Ptr a, FunPtr a, or Addr (see

> Should we make newtype completely transparent?

I think so, yes.


More information about the FFI mailing list