case lns of
[ln] -> (take ((c2 - c1) + 1) $ drop (c1 - 1) ln)
_ -> let lns1 = drop (c1 -1) (head lns) : tail lns
lns2 = init lns1 ++ [take (c2 + 1) (last lns1) ]
in foldl1 (\ xs ys -> xs ++ "\n" ++ ys) lns2
case lns of
[ln] -> (take ((c2 - c1) + 1) $ drop (c1 - 1) ln)
_ -> let lns1 = drop (c1 -1) (head lns) : tail lns
lns2 = init lns1 ++ [take (c2 + 1) (last lns1) ]
in foldl1 (\ xs ys -> xs ++ "\n" ++ ys) lns2