ANN: H98 FFI Addendum 1.0, Release Candidate 10

Simon Marlow simonmar at microsoft.com
Wed Jun 4 12:14:12 EDT 2003


 
> > > >   data Point
> > > >   foreign import getMousePos :: Ptr Point ->  IO ()
> > > >   foreign import getX :: Ptr Point -> IO Int
> > > >   foreign import getY :: Ptr Point -> IO Int
> 
> vs
> 
> >   data Point = Point (Ptr Point)
> >   foreign import getMousePos :: Point ->  IO ()
> 
> I like the second idiom.  You are right that there is no need for
> the application programmer to know whether pointers are involved,
> because even in the first style, it is not possible to 'peek' inside
> a Ptr Point to get the `actual' Point value.  So why not hide the
> pointer altogether?  Yes.

I presume that should be 'newtype' rather than 'data'?

Cheers,
	Simon



More information about the FFI mailing list