[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New version of FUNCTION-TYPE-REST-LIST-ELEMENT proposal



My preference is for EXTEND-LIST-TYPE because:

 * I'm afraid USE-ACTUAL-ARGUMENT-TYPE will get us into trouble somehow.

 * I find it bothersome that the same argument declarations which are
   used internally in the function would not be be usable externally.

 * I think it's unfair to provide only this special-purpose way of
   declaring a sequence type when in fact there are numerous other places
   in the language where it might be useful to declare a sequence type.

If we did go with USE-ACTUAL-ARGUMENT-TYPE, it should be stated explicitly
(if it is not already in CLtL somewhere) that the following is illegal:

 (DEFUN FOO (&REST X) X)
 (APPLY #'FOO T)

since there will be no way to type-declare this. Even though this is an
obscure case (that doesn't even work in some implementations), it's the
sort of thing that makes me queasy about USE-ACTUAL-ARGUMENT-TYPE.

I'm content to have the proposal presented as USE-ACTUAL-ARGUMENT-TYPE
and I expect that will pass, but I want to be listed as dissenting.