
Nicola Gigante
Il giorno 08/ago/2014, alle ore 17:29, Donn Cave
ha scritto: Foreign.Storable is the key to packing and unpacking a struct. The hsc2hs utility adds some support for struct member names, which will make your code more convenient and robust. You will also find "peek" and "poke" functions in Foreign.Storable, for pointer access.
...
Moreover, I see that peek and poke return IO a, so I can't pretend that the interface that I'm wrapping is pure, can I?
Funny you should ask ... I just happened to notice something about pretending an external function is pure, in the library documentation for Foreign.Marshall.unsafeLocalState. I can't say for sure whether it would serve your purpose here or not - the documentation could be read to say it does, anyway, and the function signature is IO a -> a. I meant to say, about hsc2hs, documentation can be found in the GHC user manual, chapter 12 or thereabouts. Donn