[R6RS] Records draft

Marc Feeley feeley
Wed Jun 22 10:27:56 EDT 2005

On 22-Jun-05, at 8:37 AM, Michael Sperber wrote:

> Marc Feeley <feeley at iro.umontreal.ca> writes:
>> The syntax is important because it is what the programmers will  
>> use all
>> the time.  If the syntax is awkward or cumbersome, then they will  
>> tend
>> to use vectors (see below). [...]
> No, by now it is clear that this will not happen, whatever our
> efforts.  Simple case in point: I won't use your syntax, and you won't
> use mine.

Can you please explain what you dislike about:

     (define-type point x y)

and in what way this is better:

     (define-type point (x y) (fields ((mutable x) x) ((mutable y) y)))

?  Don't you think the first form is much better for teaching purposes
and that its intellectual (and typing) overhead is low enough that
programmers will actually be willing to use it instead of vectors for
locally used record types?

>> By the way I dislike the two syntactic layers of record definition
>> forms.  Can you give a rationale for them?
> We discussed that in Boston.  The simple syntactic layer is for
> providing the infrastructure for defining record types, while still
> keeping with the R5RS preamble:

What I recall is discussion about having a procedural interface and a
syntactic interface, and one reason for the procedural interface was
to explain the syntactic interface.  I do not remember discussion about
two syntactic interfaces.  I'm not very convinced we **require** a
procedural interface for R6RS, but I'm willing to include it in R6RS if
there is a clear path for future extensions and the design is clean
(more on this later).  But I'm convinced that having two syntactic  
that are almost identical is not only not required, but simply a sign  
of a bad
design (in fact I would argue that the design you propose goes
literally against the "piling feature on top of feature" part
of the R5RS preamble).  As far as I can tell the simple interface is
a strict subset of the featureful interface.  So why even bother with  
simple interface?  Let's not pollute the R6RS specification with
redundant forms.


More information about the R6RS mailing list