-- Generate the next guess according to the previous guess, game state
-- and answer.
nextGuess :: ([String],GameState)->(Int,Int,Int)->([String],GameState)
nextGuess (a, xs) answer = (x, zs)
    where ys = delInconsistent (a,xs) answer
          x  = fst $ maxLeavingGuess ys
          zs = delete (Set.fromList x) ys 

-- Get the guess that the maximum number of 
-- possible answers will leave.
nextGuess :: ([String],GameState)->(Int,Int,Int)->([String],GameState)
nextGuess (a, xs) answer = (x, zs)
    where ys = delInconsistent (a,xs) answer
          x  = fst $ maxLeavingGuess ys
          zs = delete (Set.fromList x) ys 

-- Get the guess that the maximum number of 
-- possible answers will leave.
nextGuess (a, xs) answer = (x, zs)
    where ys = delInconsistent (a,xs) answer
          x  = fst $ maxLeavingGuess ys
          zs = delete (Set.fromList x) ys 

-- Get the guess that the maximum number of 
-- possible answers will leave.