process :: [String] -> Maybe LoginName -> OutputFormat -> IO ()
process repos l f = do
  auth <- getAuth l
  bss <- mapM (fetch auth) repos
  bs <- return $ fold bss
  html <- return $ write (doc bs) f
  withFile ("report" ++ formatExt f) WriteMode (\h -> hPutStr h html)
  putStrLn $ "Output report" ++ formatExt f
process :: [String] -> Maybe LoginName -> OutputFormat -> IO ()
process repos l f = do
  auth <- getAuth l
  bss <- mapM (fetch auth) repos
  bs <- return $ fold bss
  html <- return $ write (doc bs) f
  withFile ("report" ++ formatExt f) WriteMode (\h -> hPutStr h html)
  putStrLn $ "Output report" ++ formatExt f
process repos l f = do
  auth <- getAuth l
  bss <- mapM (fetch auth) repos
  bs <- return $ fold bss
  html <- return $ write (doc bs) f
  withFile ("report" ++ formatExt f) WriteMode (\h -> hPutStr h html)
  putStrLn $ "Output report" ++ formatExt f