Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Artifact ID: | 761d66c48994f8e69b14bd34e0ccee3c65b40051 |
---|---|
Page Name: | extensions |
Date: | 2012-02-02 22:41:26 |
Original User: | murphy |
Parent: | deabf1ae0c2d78d6d9faa1400a630d9fb73fa809 (diff) |
Content
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.