git.iko.soy/typeable/attoparsec
on master help sign in
More tiny improvements
commit725102c45814260b6be70125d3b298a5e9effde9 authorBryan O'Sullivan <bos@serpentine.com> dateSat 12 Feb 2011, 19:36 (16 years ago) parentc74496d
1 file changed+5−2
Data/Attoparsec/Internal.hs+5−2
Data/Attoparsec/Internal.hs+5−2
@@ -132,7 +132,10 @@ addS :: Input -> Added -> More
132132 -> Input -> Added -> More
133133 -> (Input -> Added -> More -> r) -> r
134134addS i0 a0 m0 _i1 a1 m1 f =
135− f (I (unI i0 +++ unA a1)) (A (unA a0 +++ unA a1)) (m0 <> m1)
135+ let !i = I (unI i0 +++ unA a1)
136+ a = A (unA a0 +++ unA a1)
137+ m = m0 <> m1
138+ in f i a m
136139 where
137140 Complete <> _ = Complete
138141 _ <> Complete = Complete
@@ -214,7 +217,7 @@ failDesc err = Parser (\i0 a0 m0 kf _ks -> kf i0 a0 m0 [] msg)
214217-- | If at least @n@ bytes of input are available, return the current
215218-- input, otherwise fail.
216219ensure :: Int -> Parser B.ByteString
217−ensure n = Parser $ \i0 a0 m0 kf ks ->
220+ensure !n = Parser $ \i0 a0 m0 kf ks ->
218221 if B.length (unI i0) >= n
219222 then ks i0 a0 m0 (unI i0)
220223 else runParser (demandInput >> ensure n) i0 a0 m0 kf ks