@@ -226,7 +226,10 @@ parseBreak (PRD.Parser pstep initial extract) stream@(Stream step state) = do
226226 PR.Done n _ -> do
227227 error $ "parseBreak: parser bug, go1: Done n = " ++ show n
228228 PR.Error err ->
229− return (Left (ParseError err), Stream step s)
229+ return
230+ ( Left (ParseError err)
231+ , Nesting.append (fromPure x) (Stream step s)
232+ )
230233
231234 gobuf !_ s buf (List []) !pst = go SPEC s buf pst
232235 gobuf !_ s buf (List (x:xs)) !pst = do
@@ -251,7 +254,11 @@ parseBreak (PRD.Parser pstep initial extract) stream@(Stream step state) = do
251254 let src0 = Prelude.take n (x:getList buf)
252255 src = Prelude.reverse src0
253256 return (Right b, Nesting.append (fromList src) (Stream step s))
254− PR.Error err -> return (Left (ParseError err), Stream step s)
257+ PR.Error err ->
258+ return
259+ ( Left (ParseError err)
260+ , Nesting.append (fromList (x:xs)) (Stream step s)
261+ )
255262
256263 -- This is simplified gobuf
257264 goExtract !_ buf (List []) !pst = goStop buf pst
@@ -298,7 +305,8 @@ parseBreak (PRD.Parser pstep initial extract) stream@(Stream step state) = do
298305 let src0 = Prelude.take n (getList buf)
299306 src = Prelude.reverse src0
300307 return (Right b, fromList src)
301− PR.Error err -> return (Left (ParseError err), fromList (getList buf))
308+ PR.Error err ->
309+ return (Left (ParseError err), StreamD.nil)
302310
303311------------------------------------------------------------------------------
304312-- Specialized Folds