(import scheme chicken) (define strange-warning (lambda (sym options) (let ((el (assq sym options))) (if (pair? el) (if (list? el) "list" (cdr el) ; <== strange warning here ) "found nothing" ) ) )) (define no-warning (lambda (sym options) (let ((el (assq sym options))) (if (list? el) "list" (if (pair? el) (cdr el) ; <== no warning here "found nothing" ) ) ) )) (define also-no-warning (lambda (sym options) (define el (assq sym options)) (if (pair? el) (if (list? el) "list" (cdr el) ; <== also no warning here ) "found nothing" ) )) (print (strange-warning 'a '((a "a")))) (print (no-warning 'a '((a "a")))) (print (also-no-warning 'a '((a "a"))))