Even though we need the let-bound variable showMoves only
at type [(String, String)] -> IO (), it's most general type
would be (PrintfArg a, PrintfArg b) => [(a, b)] -> IO ().
This causes the monomorphism restriction apply to that binding,
which is a warning (and, thanks to -Werror, fatal) on some
ghc versions.
Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Thomas Thrainer <thomasth@google.com>
let showGroup = if optOneStepOnly opts
then mapM_ putStrLn
else putStrLn . commaJoin
+ showMoves :: [(String, String)] -> IO ()
showMoves = if optPrintMoves opts
then mapM_ $ putStrLn . uncurry (printf " %s %s")
else const $ return ()