This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Ticket 400: Define record? .

2012-08-26 23:20:40
WG1 - Core
arthur
major
aag
wontfix
source
closed
2012-06-11 07:23:49
enhancement

We should define the predicate record? so that it's possible to distinguish instances of record types from all other types. It should not be necessary to enumerate all record type predicates in order to determine whether an object is an instance of a record.

This is Alexey Radul's suggestion.

In R6RS there is the concept of an "opaque record type". Given an instance of such a type, it is not possible to recover the type descriptor. This also means that record? won't return #t on it. Such record types can be used to implement things like ports, certain kinds of numbers, and so on. They are also provided as an optional extension to SRFI 99 records.

I'm reluctant to disallow such record types by requiring record? to respond #t on all record instances.

See follow-up discussion on the mailing list.

WG1 decided not to add record?.

statusnewdecided
resolutionwontfix
statusdecidedclosed