commit e39356d9a44f8894342a7f3d430fbddcbdf67369 parent 0e629ebca0cb1e808dde1800064e4c83d8bb1f2a Author: Robert Russell <robert@rr3.xyz> Date: Tue, 27 Aug 2024 02:52:34 -0700 Add runParse and mapParse Diffstat:
| M | Sparsec.hs | | | 6 | ++++++ |
1 file changed, 6 insertions(+), 0 deletions(-)
diff --git a/Sparsec.hs b/Sparsec.hs @@ -110,6 +110,12 @@ mapParseT f p = ParseT \input loc -> f $ runParseT p input loc type Parse e a = ParseT e Identity a +runParse :: Parse e a -> ByteString -> Loc -> Result e a +runParse (ParseT f) input loc = runIdentity $ f input loc + +mapParse :: (Result e a -> Result e' a') -> Parse e a -> Parse e' a' +mapParse f = mapParseT (Identity . f . runIdentity) + instance Monad m => Functor (ParseT e m) where fmap = liftM