anchor.diff:  
   ;; TODO factor out stuff in flet-form and labels-form
   (defunwalker-handler flet-form (bindings body declares)
  -  `(flet ,(mapcar (lambda (bind)
  -                    (cons (car bind)
  -                          ;; remove (function (lambda ...)) of the function bindings
  -                          (cdr (unwalk-form (cdr bind)))))
  +  `(flet ,(mapcar (lambda (binding)
  +                    (cons (car binding)
  +                          (if (cdr binding)
  +                              ;; remove (function (lambda ...)) of the function bindings
  +                              (rest (second (unwalk-form (cdr binding))))
  +                              ;; empty args
  +                              (list '()))))
                     bindings)
        ,@(unwalk-declarations declares)
        ,@(unwalk-forms body)))
  
positive.code:   ())
  
  (defwalker-handler labels (form parent env)
    (destructuring-bind (binds &body body)
        (cdr form)
      (with-form-object (labels 'labels-form parent :bindings '())
        ;; we need to walk over the bindings twice. the first pass
  
negative.code:       ;; actual bodies of the form filling in the previously created
        ;; objects.
        (loop
           :for entry :in bindings
           :for (name arguments . body) :in bindings
           :for lambda = (when (or body
                              arguments)
                      (with-current-form entry
                        (make-form-object 'lambda-function-form labels)))
           :do (progn
                 (when (< (length entry) 2)
                   (error "Illegal LABELS binding form ~S" entry))
                 (push (cons name lambda) (bindings-of labels))
                 (augment-walkenv! env :function name lambda)))
        (setf (bindings-of labels) (nreverse (bindings-of labels)))
        (loop
           :for form :in bindings
           :for (arguments . body) = (cdr form)
           :for binding :in (bindings-of labels)
           :for lambda = (cdr binding)
           :do (when lambda
                 (let ((tmp-lambda (walk-lambda `(lambda ,arguments ,@body) labels env)))
                   (setf (body-of lambda) (body-of tmp-lambda)
                         (arguments-of lambda) (arguments-of tmp-lambda)
                         (declares-of lambda) (declares-of tmp-lambda)))))
        (walk-implict-progn labels body env :declare t))))
  
  (defunwalker-handler labels-form (bindings body declares)
    `(labels ,(mapcar (lambda (binding)
                        (cons (car binding)
                              (if (cdr binding)
                                  ;; remove (function (lambda ...)) of the function bindings
                                  (cdadr (unwalk-form (cdr binding)))
                                  ;; empty args
                                  (list '()))))
                      bindings)
       ,@(unwalk-declarations declares)
       ,@(unwalk-forms body)))
  