anchor.diff:            (declare (type index start))
             (let ((s0 (aref vec start))
                   (s1 (aref vec (1+ start))))
  -            (setf (aref vec start) (+ s0 s1)
  +            (setf (aref vec      start) (+ s0 s1)
                     (aref vec (1+ start)) (- s0 s1)))
             nil)
           `(dif/4 (start)
  
positive.code:                                                ,(if window `(+ k 8) 0))
                                       `(aref vec (+ i 8)))))
                           (setf (aref vec i) (+ x y)
                                   (aref vec (+ i 8)) (- x y))))
                         (dif/8 start)
                         ,@(loop
                             for i below 4
  
negative.code:                              (,name/2 start)
                               (for (,n/4 (i start)
                                          (k ,(+ n/2 +twiddle-offset+) 2))
                                 (let ((x  (aref vec (+ i ,n/2)))
                                       (y  (mul-i (aref vec (+ i ,(+ n/2 n/4)))))
                                       (t1 (aref twiddle k))
                                       (t2 (aref twiddle (1+ k))))
                                   (setf (aref vec (+ i ,n/2))
  