on master help sign in
Use StreamK mergeBy instead of StreamD mergeBy
d5399efHarendra Kumar
src/Streamly/Internal/Data/Stream/IsStream/Expand.hs+4−4
@@ -174,6 +174,7 @@ import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
174import qualified Streamly.Internal.Data.Stream.Parallel as Par
174import qualified Streamly.Internal.Data.Stream.Parallel as Par
175import qualified Streamly.Internal.Data.Stream.Serial as Serial
175import qualified Streamly.Internal.Data.Stream.Serial as Serial
176import qualified Streamly.Internal.Data.Stream.StreamD as D
176import qualified Streamly.Internal.Data.Stream.StreamD as D
177+import qualified Streamly.Internal.Data.Stream.StreamK as K (mergeBy)
177import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
178import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
178#ifdef USE_STREAMK_ONLY
179#ifdef USE_STREAMK_ONLY
179import qualified Streamly.Internal.Data.Stream.StreamK as S
180import qualified Streamly.Internal.Data.Stream.StreamK as S
@@ -706,10 +707,9 @@ zipAsyncWith f = zipAsyncWithM (\a b -> return (f a b))
706-- @
707-- @
707--
708--
708-- @since 0.6.0
709-- @since 0.6.0
709−{-# INLINABLE mergeBy #-}
710+{-# INLINE mergeBy #-}
710−mergeBy ::
711− (IsStream t, Monad m) => (a -> a -> Ordering) -> t m a -> t m a -> t m a
711+mergeBy :: IsStream t => (a -> a -> Ordering) -> t m a -> t m a -> t m a
712−mergeBy f m1 m2 = fromStreamS $ S.mergeBy f (toStreamS m1) (toStreamS m2)
712+mergeBy f m1 m2 = fromStream $ K.mergeBy f (toStream m1) (toStream m2)
713
713
714-- | Like 'mergeBy' but with a monadic comparison function.
714-- | Like 'mergeBy' but with a monadic comparison function.
715--
715--
src/Streamly/Internal/Data/Stream/IsStream/Top.hs+1−2
@@ -190,8 +190,7 @@ sampleBurstStart gap =
190-- /Pre-release/
190-- /Pre-release/
191--
191--
192{-# INLINE sortBy #-}
192{-# INLINE sortBy #-}
193−sortBy :: (IsStream t, Monad m) => (a -> a -> Ordering) -> t m a -> t m a
193+sortBy :: IsStream t => (a -> a -> Ordering) -> t m a -> t m a
194−-- XXX creating StreamD and using D.mergeBy may be more efficient due to fusion
195sortBy f = Stream.concatPairsWith (Stream.mergeBy f) Stream.fromPure
194sortBy f = Stream.concatPairsWith (Stream.mergeBy f) Stream.fromPure
196
195
197------------------------------------------------------------------------------
196------------------------------------------------------------------------------