anchor.diff:  
   ;;----------------------------------------------------------------------
   
  -(defun+ across-c-ptr (function c-array)
  -  (declare (type function function)
  -           (type c-array c-array))
  -  (case= (c-array-rank c-array)
  +(defn across-c-ptr ((function function) (c-array c-array))
  +    c-array
  +  (ecase= (c-array-rank c-array)
       (1 (%across-c-ptr-1d function c-array))
       (2 (%across-c-ptr-2d function c-array))
       (3 (%across-c-ptr-3d function c-array))
       (4 (%across-c-ptr-4d function c-array))))
   
  -(defun+ %across-c-ptr-1d (func arr)
  +(defn %across-c-ptr-1d ((func function) (arr c-array))
  +    c-array
     (declare (type function func) (type c-array arr)
              (optimize (speed 3) (safety 0) (debug 1)))
     (let ((dim (c-array-dimensions arr)))
  
positive.code:                  (funcall func (aref-c src x y z)))))))
    dst)
  
  (defun+ %map-c-into-4d (dst func src)
    (let ((dim (c-array-dimensions src)))
      (if dst
          (loop :for w :below (fourth dim) :do
  
negative.code:             (funcall func ptr x y)))))
    arr)
  
  (defn %across-c-ptr-3d ((func function) (arr c-array))
      c-array
    (declare (type function func) (type c-array arr)
             (optimize (speed 3) (safety 1) (debug 1)))
    (let ((dim (c-array-dimensions arr)))
  