[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Scheme-reports] define-record-type queries


Sorry in advance, if this has been discussed already.

DEFINE-RECORD-TYPE as in the small language does not support
inheritance. I assume inheritable records will be part of the larger

The question is how this will be implemented:
- Will DEFINE-RECORD-TYPE be extended in the large language? (If so, how?)
- Will there be a new syntax, ie DEFINE-SUPER-RECORD-TYPE that accepts
the base record type as a parameter?
- Will the record types be compatible (or rather should it be) with each other?

Secondly is the name part of the record. The draft says:

<name> is bound to a representation of the record type
itself, possibly as a syntactic form.

I think this needs to be completely unambiguous as it will break portability.

For example:

(define-record-type lambda make-lambda lambda? body parameters)

may or may not work depending on the syntax binding of the record name
(certainly does NOT work on R6RS).

IMO, for non-inheritable records, the name is never needed except when
the macro is expanded, and should not litter the namespace.

Depending on the the way inheritable records (along with
introspection/reflection of the record types) are defined, the name
should be bound to syntax (or something else) (as in R6RS).

Another option is to export record type name bindings to it's own
namespace, but I have no idea what the implications are for this




Scheme-reports mailing list