free-variables does not work correctly for all lambda-forms
One example is:
(let ((iterate::*env* nil))
(iterate::free-variables
`(lambda (&optional (a 5)) a)))
;=> (A)
The expected value is NIL, but (A)
is returned. The issue seems to be in free-vars-fspec
, which shouldn't simply append (second fspec)
.