f :: (Int, [Int]) -> Char -> (Int, [Int])
f (offset, xs) c = case c of
                        '\n' -> (offset + 1, offset + 1 : xs)
                        _    -> (offset + 1, xs)
f :: (Int, [Int]) -> Char -> (Int, [Int])
f (offset, xs) c = case c of
                        '\n' -> (offset + 1, offset + 1 : xs)
                        _    -> (offset + 1, xs)
f (offset, xs) c = case c of
                        '\n' -> (offset + 1, offset + 1 : xs)
                        _    -> (offset + 1, xs)