I have made some changes in s-serialization that allows improper-lists, for example cons-pairs and circular lists. They used to fail with a type-error.
I have made the changes inside the method for sequences rather than an another method specialised on lists. That way a proper list is output as a sequence (which is prettier), and an improper list is output as a list of cons-pairs.
Circular lists are handled by first making a fresh cons in the hash-table of deserialized objects, and then replacing its cdr with a reference to the first cons in the circular list, which is also stored in the hash-table.
Some new simple tests have also been added.
The source files are attached, and a diff against the latest version in CVS.
I have only tested this on x86 SBCL, but it should work on all implementations.
Best wishes, Henrik Hjelte