D 2018-08-18T14:45:24.008 L extensions P 761d66c48994f8e69b14bd34e0ccee3c65b40051 U murphy W 1415

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 50bf2c29cc1dde011c0e6ec05393eae0