anchor.diff:    (check-type axis-number (integer 0) "a non-negative integer")
     (cond ((%array-header-p array)
   	 (let* ((dims (%array-header-dimensions array))
  -		(rank (if (integerp dims)
  +		(rank (if (fixnump dims)
   			  1
   			  (list-length dims))))
   	   (when (>= axis-number rank)
   	     (error "Axis ~S exceeds array rank ~S." axis-number rank))
  -	   (if (integerp dims)
  +	   (if (fixnump dims)
   	       dims
   	       (nth axis-number dims))))
   	(t (unless (zerop axis-number)
  
positive.code: 	    ((null (%array-header-info array))
  	     ;; Normal array, must be backed by a simple array.
  	     (setf (%simple-array-aref (%array-header-storage array) index) value))
  	    ((integerp (%array-header-info array))
  	     ;; Displaced array.
  	     (setf (row-major-aref (%array-header-storage array) (+ index (%array-header-info array))) value))
  	    (t ;; Direct memory access array.
  
negative.code: (defun array-total-size (array)
    (check-type array array)
    (cond ((%array-header-p array)
  	 (if (fixnump (%array-header-dimensions array))
  	     (%array-header-dimensions array)
  	     (apply #'* (%array-header-dimensions array))))
  	(t (%simple-array-length array))))
  