anchor.diff:          integer, intent(inout) :: mrot(3, 3, 3, 4)
           integer                :: theta ! In 90 degree increments
   
  -        forall (theta = 1:3)
  +        do theta = 1, 3
               mrot(:, :, :, theta) =                                &
                   reshape((/ 1,           0,             0,         &
                              0, icos(theta),  -isin(theta),         &
  
positive.code:             ! Cache all of the pieces' potential placements including
              ! rotations (this can used to estimate the branching factors).
              allocate(puts_cache(n))
              forall (i = 1:n)
                  puts_cache(i)%d = all_puts(all_rots(ps(i)%s), i)
              end forall
  
              ! Skip all of this piece's rotations (they are redundant).
              rots%length = 1
  
negative.code:         integer             :: p2(3, 3, 3)
  
          p2 = 0
          do i = 1, size(p1, 2)
              p2(p1(1, i), p1(2, i), p1(3, i)) = id
          end do
      end function
  
      pure function contains_p (ps, p) result(b)
  