@@ -310,7 +310,7 @@ takeLazyText :: Parser L.Text
310takeLazyText = L.fromChunks `fmap` takeRest
310takeLazyText = L.fromChunks `fmap` takeRest
312data Scan s = Continue s
312data Scan s = Continue s
313− | Finished {-# UNPACK #-} !Int Text
313+ | Finished s {-# UNPACK #-} !Int Text
315scan_ :: (s -> [Text] -> Parser r) -> s -> (s -> Char -> Maybe s) -> Parser r
315scan_ :: (s -> [Text] -> Parser r) -> s -> (s -> Char -> Maybe s) -> Parser r
316scan_ f s0 p = go [] s0
316scan_ f s0 p = go [] s0
@@ -319,7 +319,7 @@ scan_ f s0 p = go [] s0
319 case T.uncons t of
319 case T.uncons t of
320 Just (c,t') -> case p s c of
320 Just (c,t') -> case p s c of
321 Just s' -> scanner s' (n+1) t'
321 Just s' -> scanner s' (n+1) t'
322− Nothing -> Finished n t
322+ Nothing -> Finished s n t
323 Nothing -> Continue s
323 Nothing -> Continue s
324 go acc s = do
324 go acc s = do
325 input <- get
325 input <- get
@@ -328,8 +328,8 @@ scan_ f s0 p = go [] s0
328 if continue
328 if continue
329 then go (input : acc) s'
329 then go (input : acc) s'
330 else f s' (input : acc)
330 else f s' (input : acc)
331− Finished n t -> do advance (size input - size t)
331+ Finished s' n t -> do advance (size input - size t)
332− f s (T.take n input : acc)
332+ f s' (T.take n input : acc)
333{-# INLINE scan_ #-}
333{-# INLINE scan_ #-}
335-- | A stateful scanner. The predicate consumes and transforms a
335-- | A stateful scanner. The predicate consumes and transforms a