First comments Bradd W. Szonye 12 Nov 2003 00:11 UTC

Prototypes: Are the prototype arrays actually arrays, or are they only
usable as the first argument to MAKE-ARRAY? For example: Is (at1 #t) the
same as #At(#t), or is it an opaque object? How are these prototypes
superior to writing (make-array #At(#t) 10) or (make-array #At() 5)?

Why does ARRAY-SET! break from the parameter order of VECTOR-SET!?
Compare: (array-set! a obj k) vs (vector-set! a k obj). While putting
the new value last is somewhat easier to implement, the "switched"
interface seems error-prone to me.

Why #At(...) and not #At1(...)? All other prototypes mirror the spelling
of the syntactic form. Either put the type width in the syntactic form
(i.e., #At1) or omit it from the prototype (i.e., AT).

What does the syntactic form of a multiple-rank array look like? If I
understand correctly, a two-rank heterogeneous array would look like

    #2A((a1 a2 a3) (b1 b2 b3) (c1 c2 c3) (d1 d2 d3))

Some examples would help to clarify this.

Why #A\ for character arrays? Seems non-intuitive to me. I would prefer
#As (string), #Ac (character), or #At (text). Unfortunately, all of
those are already taken by the other forms.
Bradd W. Szonye