@@ -517,7 +517,7 @@ where
517import Control.Concurrent (threadDelay)
517import Control.Concurrent (threadDelay)
518import Control.Exception (Exception, assert)
518import Control.Exception (Exception, assert)
519import Control.Monad (void)
519import Control.Monad (void)
520−import Control.Monad.Catch (MonadCatch, MonadThrow)
520+import Control.Monad.Catch (MonadCatch, MonadThrow, throwM)
521import Control.Monad.IO.Class (MonadIO(..))
521import Control.Monad.IO.Class (MonadIO(..))
522import Control.Monad.Reader (ReaderT)
522import Control.Monad.Reader (ReaderT)
523import Control.Monad.State.Strict (StateT)
523import Control.Monad.State.Strict (StateT)
@@ -1215,12 +1215,12 @@ parseD :: MonadThrow m => PRD.Parser m a b -> SerialT m a -> m b
1215parseD (PRD.Parser step initial extract) = P.parselMx' step initial extract
1215parseD (PRD.Parser step initial extract) = P.parselMx' step initial extract
1217{-# INLINE parseK #-}
1217{-# INLINE parseK #-}
1218−parseK :: Monad m => PRK.Parser m a b -> SerialT m a -> m b
1218+parseK :: MonadThrow m => PRK.Parser m a b -> SerialT m a -> m b
1219parseK parser xs = do
1219parseK parser xs = do
1220 r <- PRK.runParser parser (ZR.fromStream $ K.toStream xs)
1220 r <- PRK.runParser parser (ZR.fromStream $ K.toStream xs)
1221 (\(_, b) -> return b)
1221 (\(_, b) -> return b)
1222 case r of
1222 case r of
1223− Left err -> error err
1223+ Left err -> throwM (PRD.ParseError err)
1224 Right b -> return b
1224 Right b -> return b
1226-- | Parse a stream using the supplied 'Parser'.
1226-- | Parse a stream using the supplied 'Parser'.