> > > >   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
_______________________________________________
FFI mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/ffi

Reply via email to