printList :: [String] -> Int -> IO ()
printList f w = do
    let max = (+) 1 $ maximum $ map length f
    let cols = div w max
    let files = map (padString max) $ sort f
    mapM_ putStrLn $ map concat (chunksOf cols files)
printList :: [String] -> Int -> IO ()
printList f w = do
    let max = (+) 1 $ maximum $ map length f
    let cols = div w max
    let files = map (padString max) $ sort f
    mapM_ putStrLn $ map concat (chunksOf cols files)
printList f w = do
    let max = (+) 1 $ maximum $ map length f
    let cols = div w max
    let files = map (padString max) $ sort f
    mapM_ putStrLn $ map concat (chunksOf cols files)