@@ -595,7 +595,6 @@ inspect $ hasNoTypeClasses 'eqByPure
595inspect $ 'eqByPure `hasNoType` ''Step
595inspect $ 'eqByPure `hasNoType` ''Step
599{-# INLINE cmpBy' #-}
598{-# INLINE cmpBy' #-}
600cmpBy' :: (Monad m, P.Ord a) => Stream m a -> m P.Ordering
599cmpBy' :: (Monad m, P.Ord a) => Stream m a -> m P.Ordering
601cmpBy' src = S.cmpBy P.compare src src
600cmpBy' src = S.cmpBy P.compare src src
@@ -609,7 +608,6 @@ inspect $ hasNoTypeClasses 'cmpBy
609inspect $ 'cmpBy `hasNoType` ''Step
608inspect $ 'cmpBy `hasNoType` ''Step
613{-# INLINE cmpByPure #-}
611{-# INLINE cmpByPure #-}
614cmpByPure :: Int -> Identity P.Ordering
612cmpByPure :: Int -> Identity P.Ordering
615cmpByPure n = cmpBy' (sourceUnfoldr n)
613cmpByPure n = cmpBy' (sourceUnfoldr n)
@@ -621,28 +619,44 @@ inspect $ 'cmpByPure `hasNoType` ''Step
622-- The worst case for concatMap, concat a 1 element stream n times.
620-- The worst case for concatMap, concat a 1 element stream n times.
623{-# INLINE concatMap #-}
621{-# INLINE concatMap #-}
624−concatMap :: S.MonadAsync m => Int -> Stream m Int
622+concatMap :: Int -> IO ()
625−concatMap n = S.concatMap (\_ -> sourceUnfoldrMN 1 n)
623+concatMap n = S.drain $ S.concatMap (\_ -> sourceUnfoldrMN 1 n)
626 (sourceUnfoldrMN value n)
624 (sourceUnfoldrMN value n)
627+inspect $ hasNoTypeClasses 'concatMap
628{-# INLINE concatMapPure1xN #-}
630{-# INLINE concatMapPure1xN #-}
629−concatMapPure1xN :: S.MonadAsync m => Int -> Stream m Int
631+concatMapPure1xN :: Int -> IO ()
630−concatMapPure1xN n = S.concatMap (\_ -> sourceUnfoldrN 1 n)
632+concatMapPure1xN n = S.drain $ S.concatMap (\_ -> sourceUnfoldrN 1 n)
631 (sourceUnfoldrN value n)
633 (sourceUnfoldrN value n)
636+inspect $ hasNoTypeClasses 'concatMapPure1xN
633-- We use a (sqrt n) element stream as source and then generate and concat a
639-- We use a (sqrt n) element stream as source and then generate and concat a
634-- (sqrt n) element stream for each element of the source to produce an n
640-- (sqrt n) element stream for each element of the source to produce an n
635-- element stream.
641-- element stream.
636{-# INLINE concatMapNxN #-}
642{-# INLINE concatMapNxN #-}
637−concatMapNxN :: S.MonadAsync m => Int -> Stream m Int
643+concatMapNxN :: Int -> IO ()
638−concatMapNxN n = S.concatMap (\_ -> sourceUnfoldrMN value2 n)
644+concatMapNxN n = S.drain $ S.concatMap (\_ -> sourceUnfoldrMN value2 n)
639 (sourceUnfoldrMN value2 n)
645 (sourceUnfoldrMN value2 n)
648+inspect $ hasNoTypeClasses 'concatMapNxN
641{-# INLINE concatMapRepl4xN #-}
651{-# INLINE concatMapRepl4xN #-}
642−concatMapRepl4xN :: S.MonadAsync m => Int -> Stream m Int
652+concatMapRepl4xN :: Int -> IO ()
643−concatMapRepl4xN n = S.concatMap (S.replicate 4)
653+concatMapRepl4xN n = S.drain $ S.concatMap (S.replicate 4)
644 (sourceUnfoldrMN (value `div` 4) n)
654 (sourceUnfoldrMN (value `div` 4) n)
657+inspect $ hasNoTypeClasses 'concatMapRepl4xN
646-------------------------------------------------------------------------------
660-------------------------------------------------------------------------------
647-- Mixed Composition
661-- Mixed Composition
648-------------------------------------------------------------------------------
662-------------------------------------------------------------------------------