From: Paul F. Dietz
Subject: The set of specialized array element types must be closed under intersection
Date: 
Message-ID: <HsednVz2CfcGvj2jXTWcoA@dls.net>
Thinking some more about UPGRADED-ARRAY-ELEMENT-TYPE, I've realized
that the axiom (section 15.1.2.1 of the CLHS, paragraph 3):

    T1 is a subtype of T2 ==> UAET(T1) is a subtype of UAET(T2)

implies that if two types T3 and T4 are specialized array element
types (that is, T3 is type-equivalent to UAET(T3) and the same for
T4), then UAET( (AND T3 T4) ) must be type-equivalent to (AND T3 T4).
That is, (AND T3 T4) is also (equivalent to) a specialized array
element type.

For example, if (signed-byte 32) and (unsigned-byte 32) are specialized
array element types, then so must be (unsigned-byte 31).

AFAICT, no CL implementation satisfies this part of the specification.

	Paul
From: Nils Goesche
Subject: Re: The set of specialized array element types must be closed under intersection
Date: 
Message-ID: <87lly7k8rt.fsf@darkstar.cartan>
"Paul F. Dietz" <·····@dls.net> writes:

> Thinking some more about UPGRADED-ARRAY-ELEMENT-TYPE, I've
> realized that the axiom (section 15.1.2.1 of the CLHS,
> paragraph 3):
> 
>     T1 is a subtype of T2 ==> UAET(T1) is a subtype of UAET(T2)
> 
> implies that if two types T3 and T4 are specialized array
> element types (that is, T3 is type-equivalent to UAET(T3) and
> the same for T4), then UAET( (AND T3 T4) ) must be
> type-equivalent to (AND T3 T4).  That is, (AND T3 T4) is also
> (equivalent to) a specialized array element type.

Darn, that's an excellent one: Congratulations!

> For example, if (signed-byte 32) and (unsigned-byte 32) are
> specialized array element types, then so must be (unsigned-byte
> 31).
> 
> AFAICT, no CL implementation satisfies this part of the
> specification.

Thank god, it seems fixable even without adding a million of new
specialized array types (I think).

Regards,
-- 
Nils G�sche
Ask not for whom the <CONTROL-G> tolls.

PGP key ID #xD26EF2A0