I would like to read C structs that have been written to disk as binary data. Is there a reference on doing this somewhere. The IO is not too hard, but how do I mimic the C struct in Haskell and still honor the exact sizes of the various struct members?