anchor.diff:               inputs)))
     (let* ((lazy-arrays (mapcar #'lazy-array inputs))
            (identity (identity-transformation (rank (first lazy-arrays)))))
  -    (make-fusion
  +    (fuse-lazy-arrays
        (mapcar
         (lambda (fragment)
           (destructuring-bind (shape . bitmask) fragment
  
positive.code:       (subdivide lazy-arrays)))))
  
  ;; Create a fusion, assuming INPUTS are non-empty, non-overlapping lazy-arrays.
  (defun make-fusion (inputs)
    (let ((shape (fuse-shapes (mapcar #'shape inputs))))
      (trivia:match inputs
        ((list) (empty-array))
        ((list x) x)
        (_ (make-instance 'lazy-fuse
             :ntype (reduce #'petalisp.type-inference:ntype-union
                            inputs
                            :key #'element-ntype)
             :inputs inputs
             :shape shape)))))
  
  (defun fuse-shapes (shapes)
    (trivia:match shapes
  
negative.code: (in-package #:petalisp.core)
  
  (defun fuse (&rest inputs)
    (fuse-lazy-arrays (mapcar #'lazy-array inputs)))
  
  (defun fuse* (&rest inputs)
    (let ((lazy-arrays (mapcar #'lazy-array inputs)))
  