import Prelude hiding (concatMap, unlines) -- Prefix all lines in a given string with the corresponding line number: enumerateLines :: String -> String enumerateLines = unlines . map (uncurry (++)) . zip (map (\s -> show s ++ ": ") [1..]) . lines showEnumFileLines :: String -> IO () showEnumFileLines fn = readFile fn >>= putStr . enumerateLines concatMap :: (a -> [b]) -> [a] -> [b] concatMap f = concat . map f unlines :: [String] -> String unlines = concatMap (++"\n")