Members of structures defined by sb-grovel are currently limited to
integers, c-strings and arrays. I encountered a situation where I
wanted to have structures as members of structures, and sometimes
enums are nice too.
The attached patch allows members to be of any alien type.
Structure members of type structure are handled somewhat differently
than members of other types. This is because the interface functions
that are created by sb-grovel take and return alien pointers to
structures instead of the structures themselves. To be compatible
with this, accessors to members of type structure need a call to
sb-alien:addr in the reader and a call to sb-alien:deref in the writer.