on master help sign in
Use K.concatEffect
commitc17c0d8eb583b751f45e01451254603f8ecc5f77 authorHarendra Kumar <harendra@composewell.com> dateThu 17 Nov 2022, 14:49 (4 years ago) parentac2ee38
2 files changed+5−2
core/src/Streamly/Internal/Data/Stream/Bottom.hs+4−2 core/src/Streamly/Internal/Data/Stream/StreamK.hs+1
core/src/Streamly/Internal/Data/Stream/Bottom.hs+4−2
@@ -590,11 +590,13 @@ concatMap f m = fromStreamD $ D.concatMap (toStreamD . f) (toStreamD m)
590590--
591591-- See also: 'concat', 'sequence'
592592--
593−-- /Internal/
593+-- /Inhibits stream fusion/
594594--
595595{-# INLINE concatEffect #-}
596596concatEffect :: Monad m => m (Stream m a) -> Stream m a
597−concatEffect generator = concatMapM (\() -> generator) (fromPure ())
597+-- concatEffect generator = concatMapM (\() -> generator) (fromPure ())
598+concatEffect generator =
599+ fromStreamK $ K.concatEffect $ fmap toStreamK generator
598600
599601-- XXX Need a more intuitive name, and need to reconcile the names
600602-- foldMany/fold/parse/parseMany/parseManyPost etc.
core/src/Streamly/Internal/Data/Stream/StreamK.hs+1
@@ -159,6 +159,7 @@ module Streamly.Internal.Data.Stream.StreamK
159159
160160 , concatMapWith
161161 , concatMap
162+ , concatEffect
162163 , bindWith
163164 , concatPairsWith
164165