D 2012-02-02T22:41:26.245 L extensions P deabf1ae0c2d78d6d9faa1400a630d9fb73fa809 U murphy W 1414

Extensions to SRFI-99

* The make-rtd constructor accepts four optional keyword arguments to be used after or instead of the optional parent type argument: #:parent can be used to specify the parent type, #:uid allows the explicit specification of a UID to implement non-generative records, #:sealed allows you to specify a flag preventing subtyping of the new record type if it is true and #:opaque allows you to specify a flag preventing access to the new record type descriptor through record-rtd if it is true. * The procedure rtd-uid is provided to extract the UID used to tag instances of a record type. * define-record-type passes additional optional arguments after the record type name through to make-rtd. * Specific parts of the record type definition can be created separately using the macros define-record-constructor, define-record-predicate and define-record-field. * Arbitrary [record properties] can be attached to record types using a special keyword argument #:property of make-rtd. * define-record-printer is implemented in terms of record type descriptors instead of UIDs. * The srfi-99-variants module, re-exported by srfi-99 like srfi-99-records allows easy definition of [variant types]. Z e35e4926a531591ec00179dbcdf09c80