> lines' :: String -> [String] > lines' [] = [] > lines' (x:xs) = case x of > '\n' -> []: xss > _ -> (x:ys) : yss > where ~(ys,yss) = case xss of > [] -> ([],[]) > (ys:yss) -> (ys,yss) > where xss = (lines' xs) > main = interact (unlines . lines')