(define (crosses pos1 pos2)
(any (list
(= (pos-x pos1) (pos-x pos2))
(= (pos-y pos1) (pos-y pos2))
(one-diagonale pos1 pos2))))
(define (one-diagonale pos1 pos2)
(= (abs (- (pos-x pos1) (pos-x pos2)))
(abs (- (pos-y pos1) (pos-y pos2)))))
(define (unique-pairs n)
(flatmap (lambda (i)
(map (lambda (j)
(list i j))
(enumerate-interval 0 (- i 1))))
(enumerate-interval 0 n)))