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.

Source for ticket #400

cc


    

changetime

2012-08-26 23:20:40

component

WG1 - Core

description

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.

id

400

keywords


    

milestone


    

owner

arthur

priority

major

reporter

aag

resolution

wontfix

severity


    

status

closed

summary

Define record? .

time

2012-06-11 07:23:49

type

enhancement

Changes

Change at time 2012-08-26 23:20:40

author

cowan

field

comment

newvalue


    

oldvalue

5

raw-time

1345998040967682

ticket

400

time

2012-08-26 23:20:40

Change at time 2012-08-26 23:20:40

author

cowan

field

resolution

newvalue

wontfix

oldvalue


    

raw-time

1345998040967682

ticket

400

time

2012-08-26 23:20:40

Change at time 2012-08-26 23:20:40

author

cowan

field

status

newvalue

closed

oldvalue

decided

raw-time

1345998040967682

ticket

400

time

2012-08-26 23:20:40

Change at time 2012-08-26 23:20:33

author

cowan

field

comment

newvalue


    

oldvalue

4

raw-time

1345998033227976

ticket

400

time

2012-08-26 23:20:33

Change at time 2012-08-26 23:20:33

author

cowan

field

status

newvalue

decided

oldvalue

new

raw-time

1345998033227976

ticket

400

time

2012-08-26 23:20:33

Change at time 2012-08-25 00:40:51

author

cowan

field

comment

newvalue

WG1 decided not to add `record?`.

oldvalue

3

raw-time

1345830051154273

ticket

400

time

2012-08-25 00:40:51

Change at time 2012-06-13 04:41:41

author

aag

field

comment

newvalue

See follow-up discussion on the mailing list.

oldvalue

2

raw-time

1339537301430953

ticket

400

time

2012-06-13 04:41:41

Change at time 2012-06-11 13:35:39

author

cowan

field

comment

newvalue

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.

oldvalue

1

raw-time

1339396539957846

ticket

400

time

2012-06-11 13:35:39