Discussion: Storable instances for tuples

David Feuer david.feuer at gmail.com
Sat Dec 16 03:22:18 UTC 2017

It seems surprising that there are no Storable instances for tuple types. I
would expect any tuple of Storable types to be Storable. To provide a
sensible FFI experience, the order of the fields should be preserved. Since
Storable generally aligns values, I believe elements should be aligned
within tuples as well, in the default fashion used for C structs. We could
offer a Packed newtype to override this behavior.

Why store tuples like this, and not the way Data.Vector.Unboxed does? A
moment's reflection will show that it simply can't. A Ptr is a single
pointer and must remain one; there's no room in it to deal with multiple
arrays or extra offset info.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20171215/898298f8/attachment.html>

More information about the Libraries mailing list