GenericSerialize is a library for serializing data using the existing "Scrap your boilerplate" infrastructure.
The main advantage that generic serialization posseses is that it is possible to simultaneously have several serialization modes. While interfaces such as AltBinary allow writing to any type of stream, the data format is fixed. By contrast, GenericSerialize supports multiple serialization modes; while the only currently existing module is for a subset of R5RS s-expressions, that module is less than 90 lines of code and is almost pure grammar.
It can be obtained from: darcs get http://members.cox.net/stefanor/genericserialize