@@ -940,11 +940,11 @@ takeWhile p m = fromStream $ go (toStream m)
941drop :: IsStream t => Int -> t m a -> t m a
941drop :: IsStream t => Int -> t m a -> t m a
942drop n m = fromStream $ Stream $ \st stp sng yld ->
942drop 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
945 go n1 m1 = Stream $ \st stp sng yld ->
945 go n1 m1 = Stream $ \st stp sng yld ->
946 let single _ = stp
946 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
948 -- Somehow "<=" check performs better than a ">"
948 -- Somehow "<=" check performs better than a ">"
949 in if n1 <= 0
949 in if n1 <= 0
950 then unStreamShared m1 st stp sng yld
950 then unStreamShared m1 st stp sng yld
@@ -1166,11 +1166,11 @@ the m = do
1166serial :: Stream m a -> Stream m a -> Stream m a
1166serial :: Stream m a -> Stream m a -> Stream m a
1167serial m1 m2 = go m1
1167serial m1 m2 = go m1
1169− go (Stream m) = Stream $ \st stp sng yld ->
1169+ go m = Stream $ \st stp sng yld ->
1170− let stop = unStream m2 st stp sng yld
1170+ let stop = unStream m2 st stp sng yld
1171− single a = yld a m2
1171+ single a = yld a m2
1172− yieldk a r = yld a (go r)
1172+ yieldk a r = yld a (go r)
1173− in m (rstState st) stop single yieldk
1173+ in unStream m st stop single yieldk
1175instance Semigroup (Stream m a) where
1175instance Semigroup (Stream m a) where
1176 (<>) = serial
1176 (<>) = serial
@@ -1200,16 +1200,16 @@ bindWith
1200 -> Stream m a
1200 -> Stream m a
1201 -> (a -> Stream m b)
1201 -> (a -> Stream m b)
1202 -> Stream m b
1202 -> Stream m b
1203−bindWith par m f = go m
1203+bindWith par m1 f = go m1
1205− go (Stream g) =
1205+ go m =
1206 Stream $ \st stp sng yld ->
1206 Stream $ \st stp sng yld ->
1207 let runShared x = unStreamShared x st stp sng yld
1207 let runShared x = unStreamShared x st stp sng yld
1208 runIsolated x = unStream x st stp sng yld
1208 runIsolated x = unStream x st stp sng yld
1210 single a = runIsolated $ f a
1210 single a = runIsolated $ f a
1211 yieldk a r = runShared $ isolateStream (f a) `par` go r
1211 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
1214------------------------------------------------------------------------------
1214------------------------------------------------------------------------------
1215-- Alternative & MonadPlus
1215-- Alternative & MonadPlus