Raymond Toy <[EMAIL PROTECTED]> writes:

> Earlier versions would trust your declared element-type, but later
> versions took this out as being unsafe because the compiler and
> runtime couldn't really prove it was true.

Such trust would also violate the standard.
If #.(UPGRADED-ARRAY-ELEMENT-TYPE 'foo) and
#.(UPGRADED-ARRAY-ELEMENT-TYPE 'bar) are type equivalent, then
(ARRAY foo) and (ARRAY bar) must also be type equivalent.

(It appears to me that the standard does not require
(UPGRADED-ARRAY-ELEMENT-TYPE (UPGRADED-ARRAY-ELEMENT-TYPE 'foo))
to be always equivalent to (UPGRADED-ARRAY-ELEMENT-TYPE 'foo).
That is, even if (UPGRADED-ARRAY-ELEMENT-TYPE '(SIGNED-BYTE 10))
were FIXNUM, (UPGRADED-ARRAY-ELEMENT-TYPE 'FIXNUM) could be T.)

Reply via email to