[Haskell-beginners] ffi array and peekArray
Sylvain Henry
hsyl20 at gmail.com
Sun Nov 8 20:45:39 UTC 2015
You can alias HklFactory:
type HklFactory = Ptr ()
Or if you want to avoid mixing HklFactory and other pointers, you can use:
newtype HklFactory = HklFactory (Ptr ()) deriving (Storable)
The latter requires the GeneralizedNewtypeDeriving extension, see:
https://wiki.haskell.org/Foreign_Function_Interface#Renaming_and_Storable_instances
Sylvain
2015-11-08 21:30 GMT+01:00 PICCA Frederic-Emmanuel <
frederic-emmanuel.picca at synchrotron-soleil.fr>:
> Ok, so now I get this error
>
>
> ghkl.hs:20:18:
> No instance for (Foreign.Storable.Storable HklFactory)
> arising from a use of ‘peekArray’
> In a stmt of a 'do' block: peekArray n factories
> In the expression:
> do { factories <- c_hkl_factory_get_all ptr;
> n <- peek ptr;
> peekArray n factories }
> In the second argument of ‘($)’, namely
> ‘\ ptr
> -> do { factories <- c_hkl_factory_get_all ptr;
> n <- peek ptr;
> .... }’
>
>
> What should I do to create a Storable for HklFactory which is a simple
> pointer.
>
> Thanks
>
> Frederic
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20151108/8f93ff4f/attachment.html>
More information about the Beginners
mailing list