-- | Narrowing down the max rank by making a guess that is guided by the number of higher rank cards in the feedback.
--   Guess higher rank if the answer contains higher rank cards and vice versa.
--
--   Once max rank is found, it prepares to guess the min rank with the knowledge of the known max bound.
nextGuess (currentGuess, currentState@(FindingMax maxRankGuess estMinRank history level result)) (correctCards, _, _, higherRanks, _)