anchor.diff:  
   ;;; Error handling.
   (defmethod lazy-rehape :before
  -    ((lazy-array lazy-array) (shape shape) (transformation transformation))
  +    ((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))
  
positive.code: 
  ;;; Optimization:  Compose consecutive references.
  (defmethod lazy-rehape ((lazy-rehape lazy-rehape)
                             (shape shape)
                             (transformation transformation))
    (lazy-rehape
     (input lazy-rehape)
     shape
  
negative.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
  