anchor.diff:                          collect `(,name ,@(cdr lambda)))
                   ,@(loop for var in vars
                           for temp in temps
  -                        collect `(,var (&rest args)
  -                                       (declare (dynamic-extent args))
  -                                       (apply ,temp args))))
  +                        collect (build-bind/ftype var temp decls env)))
              #-sbcl (declare (inline ,@vars))
  +           ,@decls
              ,@body)))))
   
   (defmacro fbind* (bindings &body body &environment env)
  
positive.code:            (declare ,@(loop for temp in temps collect `(function ,temp)))
             (flet ,(loop for (name nil) in complex
                          for temp in temps
                          collect `(,name (&rest args)
                                          (declare (dynamic-extent args))
                                          (apply ,temp args)))
               ,@complex-decls
               (comment "Lambdas")
               (labels (,@(loop for (name lambda) in lambda
  
negative.code:   ;; let-over-lambda), we hoist the bindings to the top and bind
    ;; the lambda directly with flet.
    (mvlet* ((env env-decls bindings lambdas (analyze-fbinds bindings))
             (body decls (parse-body body))
             (vars  (mapcar #'first bindings))
             (exprs (mapcar #'second bindings))
             (temps (mapcar #'string-gensym vars)))
  