-- |
-- Get all the neighbour 'Position's of some 'Position's within a board.
areNeighbours :: Board -> Set.Set Position -> Set.Set Position
areNeighbours board positions = areValid board
                              . flip Set.difference positions
                              . Set.unions
                              . map neighbours
                              $ Set.toList positions
areNeighbours :: Board -> Set.Set Position -> Set.Set Position
areNeighbours board positions = areValid board
                              . flip Set.difference positions
                              . Set.unions
                              . map neighbours
                              $ Set.toList positions
areNeighbours board positions = areValid board
                              . flip Set.difference positions
                              . Set.unions
                              . map neighbours
                              $ Set.toList positions