-- | Print the summary of the indicated game.
printSummaryOfGame :: (GameM m g, Show (Move g)) => Int -> m ()
printSummaryOfGame n = 
    do (mss,pay) <- liftM (forGame n) summaries
       ps <- players
       printStrLn $ "Summary of Game "++show n++":"
       printStr $ showMoveSummary ps mss
       printMaybePayoff pay
    
-- | Print the current score.
printSummaryOfGame :: (GameM m g, Show (Move g)) => Int -> m ()
printSummaryOfGame n = 
    do (mss,pay) <- liftM (forGame n) summaries
       ps <- players
       printStrLn $ "Summary of Game "++show n++":"
       printStr $ showMoveSummary ps mss
       printMaybePayoff pay
    
-- | Print the current score.
printSummaryOfGame n = 
    do (mss,pay) <- liftM (forGame n) summaries
       ps <- players
       printStrLn $ "Summary of Game "++show n++":"
       printStr $ showMoveSummary ps mss
       printMaybePayoff pay
    
-- | Print the current score.