@@ -595,7 +595,6 @@ inspect $ hasNoTypeClasses 'eqByPure
595595inspect $ 'eqByPure `hasNoType` ''Step
596596#endif
597597
598−
599598{-# INLINE cmpBy' #-}
600599cmpBy' :: (Monad m, P.Ord a) => Stream m a -> m P.Ordering
601600cmpBy' src = S.cmpBy P.compare src src
@@ -609,7 +608,6 @@ inspect $ hasNoTypeClasses 'cmpBy
609608inspect $ 'cmpBy `hasNoType` ''Step
610609#endif
611610
612−
613611{-# INLINE cmpByPure #-}
614612cmpByPure :: Int -> Identity P.Ordering
615613cmpByPure n = cmpBy' (sourceUnfoldr n)
@@ -621,28 +619,44 @@ inspect $ 'cmpByPure `hasNoType` ''Step
621619
622620-- The worst case for concatMap, concat a 1 element stream n times.
623621{-# INLINE concatMap #-}
624−concatMap :: S.MonadAsync m => Int -> Stream m Int
625−concatMap n = S.concatMap (\_ -> sourceUnfoldrMN 1 n)
622+concatMap :: Int -> IO ()
623+concatMap n = S.drain $ S.concatMap (\_ -> sourceUnfoldrMN 1 n)
626624 (sourceUnfoldrMN value n)
627625
626+#ifdef INSPECTION
627+inspect $ hasNoTypeClasses 'concatMap
628+#endif
629+
628630{-# INLINE concatMapPure1xN #-}
629−concatMapPure1xN :: S.MonadAsync m => Int -> Stream m Int
630−concatMapPure1xN n = S.concatMap (\_ -> sourceUnfoldrN 1 n)
631+concatMapPure1xN :: Int -> IO ()
632+concatMapPure1xN n = S.drain $ S.concatMap (\_ -> sourceUnfoldrN 1 n)
631633 (sourceUnfoldrN value n)
632634
635+#ifdef INSPECTION
636+inspect $ hasNoTypeClasses 'concatMapPure1xN
637+#endif
638+
633639-- We use a (sqrt n) element stream as source and then generate and concat a
634640-- (sqrt n) element stream for each element of the source to produce an n
635641-- element stream.
636642{-# INLINE concatMapNxN #-}
637−concatMapNxN :: S.MonadAsync m => Int -> Stream m Int
638−concatMapNxN n = S.concatMap (\_ -> sourceUnfoldrMN value2 n)
643+concatMapNxN :: Int -> IO ()
644+concatMapNxN n = S.drain $ S.concatMap (\_ -> sourceUnfoldrMN value2 n)
639645 (sourceUnfoldrMN value2 n)
640646
647+#ifdef INSPECTION
648+inspect $ hasNoTypeClasses 'concatMapNxN
649+#endif
650+
641651{-# INLINE concatMapRepl4xN #-}
642−concatMapRepl4xN :: S.MonadAsync m => Int -> Stream m Int
643−concatMapRepl4xN n = S.concatMap (S.replicate 4)
652+concatMapRepl4xN :: Int -> IO ()
653+concatMapRepl4xN n = S.drain $ S.concatMap (S.replicate 4)
644654 (sourceUnfoldrMN (value `div` 4) n)
645655
656+#ifdef INSPECTION
657+inspect $ hasNoTypeClasses 'concatMapRepl4xN
658+#endif
659+
646660-------------------------------------------------------------------------------
647661-- Mixed Composition
648662-------------------------------------------------------------------------------