The storable-record package

[Tags: bsd3, library]

With this package you can build a Storable instance of a record type from Storable instances of its elements in an elegant way. It does not do any magic, just a bit arithmetic to compute the right offsets, that would be otherwise done manually or by a preprocessor like C2HS. I cannot promise that the generated memory layout is compatible with that of a corresponding C struct. However, the module generates the smallest layout that is possible with respect to the alignment of the record elements. If you encounter, that a record does not have a compatible layout, we should fix that. But also without C compatibility this package is useful e.g. in connection with StorableVector.

We provide Storable instance support for several cases:

Note however that the Storable instances defined with this package are quite slow in (up to) GHC-6.12.1. I'm afraid this is due to incomplete inlining, but we have still to investigate the problem.

For examples see packages storable-tuple and sample-frame.


Versions0.0.1, 0.0.2,,,,,, 0.0.3
Change logNone available
Dependenciesbase (>=1.0 && <2 || >=3 && <6), special-functors (==1.0.*), storablevector (==0.2.7.*), timeit (==1.0.*), transformers (==0.2.*), utility-ht (>=0.0.1 && <0.1) [details]
AuthorHenning Thielemann <>
MaintainerHenning Thielemann <>
CategoryData, Foreign
Home page
Source repositoryhead: darcs get
this: darcs get --tag
UploadedSat Apr 30 18:59:05 UTC 2011 by HenningThielemann
Downloads4013 total (99 in last 30 days)
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]




splitbaseChoose the new smaller, split-up base package.EnabledAutomatic
buildtestsBuild speed testDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees