anchor.diff:                                                         0, 0, 1 /),    &
                                                       (/ 3, 3 /))
       integer                  :: mrot(3, 3, 3, 4), cube(3, 3, 3)
  +    type(list), allocatable  :: rots_cache(:)
       type(piece), allocatable :: ps(:)
       type(list)               :: sols
   
  
positive.code:         end forall
      end function
  
      function sparse_to_dense(p1) result(p2)
          integer, intent(in) :: p1(:, :)
          integer             :: i
          integer             :: p2(3, 3, 3)
  
negative.code:         end forall
      end function
  
      pure function contains_p (ps, p) result(b)
          type(list), intent(in) :: ps
          integer, intent(in)    :: p(:, :)
          logical                :: b
  