compareBoards shortCircuit a@(s, x) b@(_, y)
  | shortCircuit newBoard = a
  | x < y                 = a
  | otherwise             = b
  where newBoard = board s
compareBoards shortCircuit a@(s, x) b@(_, y)
  | shortCircuit newBoard = a
  | x < y                 = a
  | otherwise             = b
  where newBoard = board s
compareBoards shortCircuit a@(s, x) b@(_, y)
  | shortCircuit newBoard = a
  | x < y                 = a
  | otherwise             = b
  where newBoard = board s