anchor.diff:              ! 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)
  +            do i = 1, n
                   puts_cache(i)%d = all_puts(all_rots(ps(i)%s), i)
  -            end forall
  +            end do
   
               ! Skip all of this piece's rotations (they are redundant).
               rots%length = 1
  
positive.code:                            isin(theta),   icos(theta),      0,    &
                                       0,             0,      1 /), &
                          (/ 3, 3, 3 /))
          end forall
      end subroutine
  
      pure function rotate(p1, axis, theta) result(p2)
  
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)
  