@@ -480,7 +480,7 @@ parseDToK
480480parseDToK pstep initial extract leftover (0, _) cont = do
481481 res <- initial
482482 case res of
483− IPartial r -> return $ K.Continue leftover (parseCont (return r))
483+ IPartial r -> return $ K.Partial leftover (parseCont (return r))
484484 IDone b -> cont state (K.Success 0 b)
485485 IError err -> cont state (K.Failure err)
486486
@@ -516,7 +516,7 @@ parseDToK pstep initial extract leftover (0, _) cont = do
516516parseDToK pstep initial extract leftover (level, count) cont = do
517517 res <- initial
518518 case res of
519− IPartial r -> return $ K.Continue leftover (parseCont count (return r))
519+ IPartial r -> return $ K.Partial leftover (parseCont count (return r))
520520 IDone b -> cont (level,count) (K.Success 0 b)
521521 IError err -> cont (level,count) (K.Failure err)
522522
@@ -592,7 +592,7 @@ fromParserK parser = Parser step initial extract
592592 return $ case r of
593593 K.Done n b -> assert (n == 0) (IDone b)
594594 K.Error e -> IError e
595− K.Partial _ cont -> assert False (IPartial cont)
595+ K.Partial n cont -> assert (n == 0) (IPartial cont)
596596 K.Continue n cont -> assert (n == 0) (IPartial cont)
597597
598598 step cont a = do
@@ -605,11 +605,11 @@ fromParserK parser = Parser step initial extract
605605
606606 extract cont = do
607607 r <- cont Nothing
608− return $ case r of
609− K.Done n b -> Done n b
610− K.Error e -> Error e
611− K.Partial _ _ -> error "Bug: extract got Partial"
612− K.Continue n cont1 -> Continue n cont1
608+ case r of
609+ K.Done n b -> return $ Done n b
610+ K.Error e -> return $ Error e
611+ K.Partial _ cont1 -> extract cont1
612+ K.Continue n cont1 -> return $ Continue n cont1
613613
614614#ifndef DISABLE_FUSION
615615{-# RULES "fromParserK/toParserK fusion" [2]