anchor.diff:            (ast `(quote ,(apply function
                                  (mapcar (lambda (thing type)
                                            ;; Bail out if thing is non-constant or does not match the type.
  +                                         (setf thing (unwrap-the thing))
                                            (unless (and (typep thing 'ast-quote)
                                                         (typep (value thing) type))
                                              (return-from constant-fold nil))
  
positive.code:              (let ((const-args '())
                     (nonconst-args '())
                     (value nil))
                 (dolist (i arg-list)
                   (if (typep i 'ast-quote)
                       (push (value i) const-args)
                       (push i nonconst-args)))
                 (setf const-args (nreverse const-args)
                       nonconst-args (nreverse nonconst-args))
                 (when (or const-args (not nonconst-args))
  
negative.code:              (if arg-list
                   (let ((constant-accu '())
                         (arg-accu '()))
                     (dolist (arg arg-list)
                       (let ((unwrapped (unwrap-the arg)))
                         (cond ((typep unwrapped 'ast-quote)
                                (push (value unwrapped) constant-accu))
                               (t
                                (when constant-accu
                                  (push (ast `(quote ,(apply function (nreverse constant-accu)))
                                             form)
                                        arg-accu)
                                  (setf constant-accu nil))
                                (push arg arg-accu)))))
                     (if arg-accu
                         (ast `(call ,function
                                     ,@(nreverse arg-accu)
  