Per,

I have a vague memory that when I checked the most previous time, when in module A I declared a particular C type, and in module B I had a C FFI definition that made use of that type (for argument or return value), I needed to redefine the C type in module B.

How is it nowadays?

Are there any risks involved in this, such as that the one and same C type, as created by FFI routines in module A and B, could somehow appear as made of two different types, or that they would somehow be incompatible with each others?

Mikael