(defun walk-lambda (form parent env)
(with-form-object (func lambda-function-form
:parent parent
:source form)
;; 1) parse the argument list creating a list of FUNCTION-ARGUMENT-FORM objects
(multiple-value-setf ((arguments func) env)
(walk-lambda-list (second form) func env))
;; 2) parse the body
(multiple-value-setf ((body func) nil (declares func))
(walk-implict-progn func (cddr form) env :declare t))
;; all done
func))Source Context