anchor.diff:             (format t "; CPS transforming ~A.~%" name)
              (list (copy-lambda x :args (. '~%cont args) :body (cps-body body))
                    `(%= (%slot-value ,name _cps-transformed?) t)))
  -         (list (copy-lambda x :body (cps-subfuns body)))))))
  +         (list (copy-lambda x))))))
   
   (defun cps-subfuns (x)
     (when x
  -    (+ (?
  -         (named-lambda? x.)  (cps-fun x.)
  -         (cps-call? x.)      (alet (%=-value x.)
  -                               `((%= ,(%=-place x.) (,!. cps-identity ,@.!))))
  -         (list x.))
  +    (+ (? (named-lambda? x.)
  +          (cps-fun x.)
  +          (list x.))
          (cps-subfuns .x))))
   
   (defun cps (x)
  
positive.code: 
  (defun cps-call? (x)
    (& (%=-funcall? x)
       (!? (get-funinfo (car (%=-value x)))
           (funinfo-cps? !))))
  
  (defun cps-splitpoint? (x)
    (| (number? x)
  
negative.code:                           ,@(butlast _)
                            ,@(alet (car (last _))
                                (?
                                  (cps-call? !)  (with (val               (%=-value !)
                                                        constructorcall?  (%new? val)
                                                        name              (? constructorcall?
                                                                             .val.
                                                                             val.)
                                                        args              (? constructorcall?
                                                                             ..val
                                                                             .val))
                                                   (= last-place (%=-place !))
                                                   (& (member 'cps-identity args)
                                                      (error "Function has already been transformed."))
                                                   `((%= nil (,@(? constructorcall?
                                                                   `(%new))
                                                              ,name
                                                              ,(| .names. 'cps-identity)
                                                              ,@args))))
                                  (%%go? !)      `((%= nil (,(assoc-value .!. tag-names))))
                                  (%%go-cond? !) `((,(? (%%go-nil? !)
                                                        '%%call-nil
  