on master help sign in
Fix improper usage of unStream together with rstState.
commitc1b1f9224ff0860df8c4f480fd49370a0fffedf2 authorPranay Sashank <pranaysashank@gmail.com> dateWed 5 Dec 2018, 19:38 (8 years ago) parent924856b
1 file changed+10−10
src/Streamly/Streams/StreamK.hs+10−10
src/Streamly/Streams/StreamK.hs+10−10
@@ -940,11 +940,11 @@ takeWhile p m = fromStream $ go (toStream m)
940940
941941drop :: IsStream t => Int -> t m a -> t m a
942942drop n m = fromStream $ Stream $ \st stp sng yld ->
943− unStream (go n (toStream m)) (rstState st) stp sng yld
943+ unStream (go n (toStream m)) st stp sng yld
944944 where
945945 go n1 m1 = Stream $ \st stp sng yld ->
946946 let single _ = stp
947− yieldk _ r = (unStream $ go (n1 - 1) r) st stp sng yld
947+ yieldk _ r = (unStreamShared $ go (n1 - 1) r) st stp sng yld
948948 -- Somehow "<=" check performs better than a ">"
949949 in if n1 <= 0
950950 then unStreamShared m1 st stp sng yld
@@ -1166,11 +1166,11 @@ the m = do
11661166serial :: Stream m a -> Stream m a -> Stream m a
11671167serial m1 m2 = go m1
11681168 where
1169− go (Stream m) = Stream $ \st stp sng yld ->
1170− let stop = unStream m2 st stp sng yld
1171− single a = yld a m2
1172− yieldk a r = yld a (go r)
1173− in m (rstState st) stop single yieldk
1169+ go m = Stream $ \st stp sng yld ->
1170+ let stop = unStream m2 st stp sng yld
1171+ single a = yld a m2
1172+ yieldk a r = yld a (go r)
1173+ in unStream m st stop single yieldk
11741174
11751175instance Semigroup (Stream m a) where
11761176 (<>) = serial
@@ -1200,16 +1200,16 @@ bindWith
12001200 -> Stream m a
12011201 -> (a -> Stream m b)
12021202 -> Stream m b
1203−bindWith par m f = go m
1203+bindWith par m1 f = go m1
12041204 where
1205− go (Stream g) =
1205+ go m =
12061206 Stream $ \st stp sng yld ->
12071207 let runShared x = unStreamShared x st stp sng yld
12081208 runIsolated x = unStream x st stp sng yld
12091209
12101210 single a = runIsolated $ f a
12111211 yieldk a r = runShared $ isolateStream (f a) `par` go r
1212− in g (rstState st) stp single yieldk
1212+ in unStream m st stp single yieldk
12131213
12141214------------------------------------------------------------------------------
12151215-- Alternative & MonadPlus