import qualified System.IO.Lazy.Input as LI import System.Environment (getArgs) main = print =<< LI.run . fmap (length . words) . LI.concat . map LI.readFile =<< getArgs -- some experimentations -- main = print =<< fmap sum . mapM (fmap (length . words) . readFile) =<< getArgs -- main = print =<< LI.run . fmap sum . mapM (fmap (length . words) . LI.readFile) =<< getArgs -- main = print =<< LI.run . fmap (length . words) . concatLI . map LI.readFile =<< getArgs -- main = print =<< LI.run . fmap sum . LI.sequence . map (fmap (length . words) . LI.readFile) =<< getArgs -- main = print =<< LI.run . fmap (length . words . D.toList . runW) . concatLI . map (fmap (W . D.fromList)) . map LI.readFile =<< getArgs {- main = do args <- getArgs let onEachFile filePath = do contents <- LI.readFile filePath return $ length $ words contents i <- LI.run $ do counts <- mapM onEachFile args return $ sum counts print i -}