unlines = concat . map ( + + " \n " ) = =
--foldr (++) [] . map (++ "\n") ==
--{f == (++), g == (++ "\n"), a == []} 
foldr ( f .  ) a = =
--foldr ((++) . (++ "\n")) [] 

--lines' :: Text -> [Line]
lines' xs = if null zs then ys' else ys:lines' (tail zs)
    where (ys, zs) = span (/= '\n') xs
          ys' = if null ys then [] else [ys]

foldr (++) [] . map (++ "\n") ==
{f == (++), g == (++ "\n"), a == []} 
foldr ((++) . (++ "\n")) [] 
lines' :: Text -> [Line]
unlines = concat . map ( + + " \n " ) = =
foldr ( f .  ) a = =

lines' xs = if null zs then ys' else ys:lines' (tail zs)
    where (ys, zs) = span (/= '\n') xs
          ys' = if null ys then [] else [ys]
