> lines' :: String -> [String] > lines' [] = [] > lines' (x:xs) = f x (lines' xs) > f :: Char -> [String] -> [String] > f '\n' xss = "" : xss > f x [] = [[x]] > f x (ys:yss) = (x:ys) : yss > main = interact (unlines . lines')