((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