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 flet (form parent env)
    (destructuring-bind (binds &body body)
        (cdr form)
      (with-form-object (flet 'flet-form parent)
        ;; build up the objects for the bindings in the original env
        (loop
           :for (name args . body) :in binds
           :collect (cons name (with-form-object (lambda-node 'lambda-function-form flet)
                                 (walk-lambda-like lambda-node args body env))) :into bindings
           :finally (setf (bindings-of flet) bindings))
        ;; walk the body in the new env
        (walk-implict-progn flet
  
negative.code:   ())
  
  (defwalker-handler labels (form parent env)
    (destructuring-bind (bindings &body body)
        (cdr form)
      (with-form-object (labels 'labels-form parent :bindings '())
        ;; we need to walk over the bindings twice. the first pass
  