anchor.diff:      (transformation lazy-reshape)
       transformation)))
   
  -;;; Optimization:  Drop references with no effect.
  +;;; Optimization: Drop references with no effect.
   (defmethod lazy-reshape
       ((lazy-array lazy-array)
        (shape shape)
  
positive.code: (defgeneric lazy-reshape (input shape transformation)
    (:argument-precedence-order transformation shape input))
  
  ;;; Optimization:  Compose consecutive references.
  (defmethod lazy-reshape ((lazy-reshape lazy-reshape)
                          (shape shape)
                          (transformation transformation))
    (lazy-reshape
     (input lazy-reshape)
     shape
  
negative.code:       lazy-array
        (call-next-method)))
  
  ;;; Optimization: Skip references to lazy fuse operations in case they fall
  ;;; entirely within a single input of that fusion.
  (defmethod lazy-reshape
      ((lazy-fuse lazy-fuse)
       (shape shape)
       (transformation transformation))
    (loop for input in (inputs lazy-fuse)
          when (subshapep *relevant-shape* (shape input)) do
            (return-from lazy-reshape
              (lazy-reshape input shape transformation)))
    (call-next-method))
  
  ;;; Handle empty shapes.
  (defmethod lazy-reshape
      ((lazy-array lazy-array)
       (null null)
       (transformation transformation))
    (empty-array))
  
  ;;; Default:  Construct a new reference.
  (defmethod lazy-reshape ((lazy-array lazy-array)
  