I've been thinking about a SRFI that contains just what a user needs for record introspection, a tiny subset of SRFI 99. I think the bare minimum for pattern matching is:
record?
record-rtd?
rtd-accessor
rtd-mutator
rtd-all-field-names
Note that any Scheme can support this by the simple approach of making record? always return #f and the rest signal errors.
Adding the one-argument version of record-construct (which gives you a BOA constructor) also allows you to copy records without knowing anything about them, and even do tricks like copying the fields with the same names from an instance of one record type to an instance of another (MOVE CORRESPONDING in Cobol).
The only other thing that seems useful enough is rtd-predicate. You can't make your own out of record-rtd because inheritance, but I can't think what it would be useful for.
If you want to construct record types at run time, use SRFI 99.
Comments?