Next: expander lexenv prim rtd, Previous: expander lexenv prim records, Up: expander lexenv prim [Index]
A syntactic binding representing R6RS’s condition object record–type name defined by the boot image has descriptor with one of the formats:
($core-condition-object-type-name
. #(?type-name ?uid
?rtd-name ?rcd-name
?parent-name
?constructor-name ?type-predicate-name
?accessors-avector))
where the values are:
A symbol representing the public name of the type.
A symbol representing a unique identifier for the type.
A symbol representing the public name of the syntactic identifier to which the record–type descriptor is bound.
A symbol representing the public name of the syntactic identifier to which the default record–constructor descriptor is bound.
#f or a symbol representing the public name of the syntactic
identifier bound to the parent’s record-type.
A symbol representing the public name of the syntactic identifier to which the default constructor is bound.
A symbol representing the public name of the syntactic identifier to which the type predicate is bound.
An association vector having: as keys symbols representing field names; as values symbols representing the public name of the syntactic identifier to which the safe field accessor is bound.
As example, for the definition:
(define-condition-type &who
&condition
make-who-condition who-condition?
(who condition-who))
the following descriptor is generated:
($core-condition-object-type-name
. #(&who vicare:scheme-type:&who
&who-rtd &who-rcd &condition
make-who-condition who-condition?
#((who . condition-who))))