
Hello, To access a haskell type from C code, do we have to make this type instance of Storable (and so to also define an homomorph structure on the C side), or does FFI specifies some C function to enable C code to access the fields, or even some GHC-specific functions? (Even if I'd prefer a portable way) I mean, if I have the type: data Character = Character { pos :: (Float, Float), size :: Float, sprite :: Image } Do I compulsorily have to double its definition on C side: stuct CCharacter { float x; float y; float size; Image sprite; } and then make Character instance of Storable, which will make the program *copy* Characters to CCharacters each time that I must call a C function to, say, draw a character?