From: Mark Wooding Date: Sun, 30 Apr 2006 14:37:53 +0000 (+0100) Subject: collect: Declare results as having type list. X-Git-Url: https://git.distorted.org.uk/~mdw/lisp/commitdiff_plain/447aca398f4bb96c4b2b3318ea79ccd29af87075?hp=7dcf04ad1295e4c19d0ad48b1b8cc4533cb8dd1e collect: Declare results as having type list. It seems that CMU CL can't work this out on its own. I suppose that's not completely surprising. --- diff --git a/collect.lisp b/collect.lisp index 946ba91..219f351 100644 --- a/collect.lisp +++ b/collect.lisp @@ -45,7 +45,7 @@ ((atom vars) (setf vars (list vars)))) `(let ,(mapcar (lambda (v) `(,v (make-collector))) vars) ,@body - (values ,@(mapcar (lambda (v) `(cdr ,v)) vars)))) + (values ,@(mapcar (lambda (v) `(the list (cdr ,v))) vars)))) (defmacro with-collection (vars collection &body body) "Collect items into lists VARS according to the form COLLECTION; then