From: Nikodemus Siivola
Subject: Simple and complex lists
Date: 
Message-ID: <bpljta$c0a$1@nyytiset.pp.htv.fi>
This appeared on one of the cross-posted threads -- and since they are
most likely heavily killfiled, I though the lift this one out, and
quote it out of context:

 ;-)

In comp.lang.lisp Marco Antoniotti <·······@cs.nyu.edu> wrote:

> some restriction on lists (incidentally I strongly believe that the CL 
> type system should be extended to include SIMPLE-LISTs and COMPLEX-LISTs 

I assume you mean simple-list as

 (deftype simple-list (type)
  ;; not quite legal
   #1=`(cons ,type (or ,#1# null)))

and complex-list as a regular, can-holds-anything-list?

Cheers,

 -- Nikodemus
From: Brian Mastenbrook
Subject: Re: Simple and complex lists
Date: 
Message-ID: <m23ccgv6yu.fsf@Distral.local>
Nikodemus Siivola <······@random-state.net> writes:

> In comp.lang.lisp Marco Antoniotti <·······@cs.nyu.edu> wrote:
> 
> > some restriction on lists (incidentally I strongly believe that the CL 
> > type system should be extended to include SIMPLE-LISTs and COMPLEX-LISTs 
> 
> I assume you mean simple-list as
> 
>  (deftype simple-list (type)
>   ;; not quite legal
>    #1=`(cons ,type (or ,#1# null)))
> 
> and complex-list as a regular, can-holds-anything-list?
> 

This is one of my biggest CL wishlist items - and in fact it could be
solved a bit simpler if CL would allow specialized SEQUENCE types:

(deftype simple-list (type)
  `(and list (sequence type)))

Alas, it does not, but IMHO it would be preferred to sorting out the
recursive type specifier issues you allude to above.

--
Brian Mastenbrook
http://www.cs.indiana.edu/~bmastenb/