anchor.diff:         (with-lambda-funinfo x.
            (correct-funinfo)
            (remove-unused-vars (lambda-body x.))))
  -;         (warn-unused-arguments *funinfo*)
  +;         (warn-unused-arguments *funinfo*) ; TODO: Fix.
       (remove-unused-vars .x)))
   
   (fn optimize-funinfos (x)
  
positive.code:      (sole? (funinfo-free-vars fi))
       (not (funinfo-scoped-vars (funinfo-parent fi)))
       (!= (car (funinfo-free-vars fi))
         (optimizer-message "; Removing array allocation for sole scoped ~A in ~A.~%"
                            ! (human-readable-funinfo-names fi))
         (= (funinfo-free-vars fi)    nil
            (funinfo-scope-arg fi)    !
  
negative.code:      {(= (funinfo-scope-arg fi) nil)
        (pop (funinfo-args fi))
        (pop (funinfo-argdef fi))
        (optimizer-message "Made ~A a regular function.~%" (human-readable-funinfo-names fi))}))
  
  (fn remove-scoped-vars (fi)
    (& (sole? (funinfo-scoped-vars fi))
       (not (funinfo-place? fi (car (funinfo-scoped-vars fi))))
       {(optimizer-message "Unscoping ~A in ~A.~%"
                           (!= (funinfo-scoped-vars fi)
                             (? .! ! !.))
                           (human-readable-funinfo-names fi))
  