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