MAPCAN/MAPCON Edge cases
## Describe the bug MAPCAN/MAPCON functions have two edge cases which are not correctly handled in cmucl. ## To Reproduce & Expected behavior ```common_lisp (mapcan #'identity '(1 2 3)) ; should error, returns 3 instead (mapcon #'car '(1 2 3)) ; same (setf *print-circle* t) ;; This returns #1=(1 2 . #1#), which is correct (let ((lst (list 1 2))) (flet ((f (x) (declare (ignore x)) lst)) (apply #'nconc (mapcar #'f '(1 2))))) ;; Should be equivalent to the previous example, but hangs instead. (let ((lst (list 1 2))) (flet ((f (x) (declare (ignore x)) lst)) (mapcan #'f '(1 2)))) ``` Also please see https://gitlab.common-lisp.net/ansi-test/ansi-test/-/issues/39 . ## Desktop (please complete the following information): - OS: Linux - Version: CMU Common Lisp 21d (21D Unicode)
issue