anchor.diff:               (funcall func arr x y z)))))
     arr)
   
  -(defun+ %across-c-4d (func arr)
  -  (declare (type function func) (type c-array arr)
  -           (optimize (speed 3) (safety 1) (debug 1)))
  +(defn %across-c-4d ((func function) (arr c-array))
  +    c-array
  +  (declare (optimize (speed 3) (safety 1) (debug 1)))
     (let ((dim (c-array-dimensions arr)))
       (loop :for w :below (the c-array-index (fourth dim)) :do
          (loop :for z :below (the c-array-index (third dim)) :do
  
positive.code:            (funcall func (aref-c src i)))))
    dst)
  
  (defun+ %map-c-into-2d (dst func src)
    (let ((dim (c-array-dimensions src)))
      (if dst
          (loop :for y :below (second dim) :do
  
negative.code: 
  ;;----------------------------------------------------------------------
  
  (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))))
  
  (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)))
  