anchor.diff:      (error err)))
   
   (defun check-cells-quota (vm)
  +  (declare (optimize speed))
     (labels ((quota-exceeded ()
                (and (vm-cells-quota vm)
  -                  (> (vm-used-cells vm) (vm-cells-quota vm)))))
  +                  (> (the fixnum (vm-used-cells vm))
  +                     (the fixnum (vm-cells-quota vm))))))
       (when (quota-exceeded)
         (vm-count-used-cells vm)
         (when (quota-exceeded)
  
positive.code:         (vm-current-environment vm) (return-address-environment retaddr)))
  
  (defun handle-args (vm args)
    (when (< 0 args)
      (let* ((stack (vm-stack vm))
             (return-address (if (return-address-p (first stack)) (pop stack)))
  
negative.code:         (finish-primitive-call vm num-args result save-return-address)))))
  
  (defun finish-primitive-call (vm num-args result save-return-address)
    (declare (optimize speed (safety 0)))
    (setf (vm-stack vm) (nthcdr num-args (vm-stack vm)))
    (if save-return-address
        (incf (the fixnum (vm-program-counter vm)))
        (apply-return-address vm (pop (vm-stack vm))))
    (push result (vm-stack vm)))
  
  (defun call-primitive (callable vm num-args save-return-address)
    (declare (optimize speed))
    (unless (callable-cached-prim callable)
      (setf (callable-cached-prim callable)
            (or (alexandria:if-let (prim0 (callable-prim0 callable))
  