From: Raymond Toy
Subject: CL type question
Date: 
Message-ID: <4nn0sia08t.fsf@edgedsp4.rtp.ericsson.se>
While looking at CMUCL's complex type specifier, some questions came
up on the CMUCL mailing list.

First, what is

(subtypep '(simple-array (signed-byte 25) (*))
          '(simple-array (signed-byte 20) (*)))

supposed to return?  CMUCL returns T, T since both arrays are upgraded
to type (simple-array fixnum (*)).  Clisp and ACL say the same.

The main question, though, is what is the type of (complex (eql 0))?

On the one hand, (eql 0) is a subtype of rational, so this could be
the same as (complex rational).

On the other hand, a complex whose components are both the rational 0
doesn't exist since such numbers must be converted to the rational 0.
Thus, (complex (eql 0)) is the empty type.

Thanks for any pointers,

Ray