anchor.diff:  
   ;;; Handle empty shapes.
   (defmethod lazy-rehape ((lazy-array lazy-array)
  -                           (null null)
  -                           (transformation transformation))
  +                        (null null)
  +                        (transformation transformation))
     (empty-array))
   
   ;;; Default:  Construct a new reference.
   (defmethod lazy-rehape ((lazy-array lazy-array)
  -                           (shape shape)
  -                           (transformation transformation))
  +                        (shape shape)
  +                        (transformation transformation))
     (make-instance 'lazy-rehape
       :ntype (element-ntype lazy-array)
       :inputs (list lazy-array)
  
positive.code: 
  ;;; Optimization:  Drop references with no effect.
  (defmethod lazy-rehape ((lazy-array lazy-array)
                             (shape shape)
                             (identity-transformation identity-transformation))
    (if (and (shape-equal (shape lazy-array) shape)
             ;; Don't drop references to range immediates.  The reason for
             ;; this is that we never want these immediates to appear as
  
negative.code: 
  ;;; Error handling.
  (defmethod lazy-rehape :before
      ((lazy-array lazy-array)
       (shape shape)
       (transformation transformation))
    (let ((relevant-shape (transform shape transformation))
          (input-shape (shape lazy-array)))
      (unless (and (= (shape-rank relevant-shape) (shape-rank input-shape))
  