Wolfgang Jenkner writes:
>"Vadim V. Zhytnikov" <vvzhy@mail.ru> writes:
>
>
>>But isn't
>>
>>(typep "12" '(simple-base-string 2)) -> NIL
>>
>>wrong?
>>
>
>I think this is quite conforming to the CLHS.
>
>* (array-element-type "a")
>CHARACTER
>
>which in SBCL is a strict super-type of BASE-CHAR:
>
>* (subtypep 'character 'base-char)
>NIL
>T
>
>Since the CLHS implies
>
>* (upgraded-array-element-type 'base-char)
>BASE-CHAR
>
>the corresponding array types must be disjoint in SBCL:
>
>* (subtypep '(and (array base-char) (array character)) nil)
>T
>T
>
>Of course, that is not a consistency proof for SBCL's type system (on
>the other hand, perhaps a working SBCL can be regarded as a model of
>its own type system ;-)
>
>Wolfgang
>
>
Thank you for clarifying explanation!
Now I also see why in clisp
(typep "12" '(simple-base-string 2)) -> T
The point is that in clisp
(sybtypep 'character 'base-char) -> T; T
(sybtypep 'base-char 'character) -> T; T
which is probably also valid (but differs from sbcl
scheme).
--
Vadim V. Zhytnikov
<vvzhy@mail.ru>
<vvzhy@netorn.ru>