Skip to content

support (nongenerative uid) in define-ftype#1015

Open
mflatt wants to merge 1 commit intocisco:mainfrom
mflatt:ftype-uid
Open

support (nongenerative uid) in define-ftype#1015
mflatt wants to merge 1 commit intocisco:mainfrom
mflatt:ftype-uid

Conversation

@mflatt
Copy link
Contributor

@mflatt mflatt commented Feb 6, 2026

A (nongenerative uid) clause in define-ftype is analogous to the same kind of clause in define-record-type.

To prevent mismatched definitions using the same uid the check for interned record types needs to compare "extras" —fields that are added to the record type itself. Previously, "extras" were just assumed to be the same, since they were only generated internally.

Also, correct some information in the documentation about the generativity of define-ftype. When the right-hand side is an existing ftype name, the definition is not syntactically generative. In those case, (nongenerative uid) is disllowed.

A `(nongenerative uid)` clause in `define-ftype` is analogous to the
same kind of clause in `define-record-type`.

To prevent mismatched definitions using the same `uid` the check for
interned record types needs to compare "extras" --- fields that are
added to the record type itself. Previously, "extras" were just
assumed to be the same, since they were only generated internally.

Also, correct some information in the documentation about the
generativity of `define-ftype`. When the right-hand side is an
existing ftype name, the definition is not syntactically generative.
In those case, `(nongenerative uid)` is disllowed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants