@@ -979,10 +979,15 @@ mapMaybe f m = fromStreamS $ S.mapMaybe f $ toStreamS m
979-- /Concurrent (do not use with 'parallely' on infinite streams)/
979-- /Concurrent (do not use with 'parallely' on infinite streams)/
981-- @since 0.3.0
981-- @since 0.3.0
982−{-# INLINE mapMaybeM #-}
982+{-# INLINE_EARLY mapMaybeM #-}
983mapMaybeM :: (IsStream t, MonadAsync m, Functor (t m))
983mapMaybeM :: (IsStream t, MonadAsync m, Functor (t m))
984 => (a -> m (Maybe b)) -> t m a -> t m b
984 => (a -> m (Maybe b)) -> t m a -> t m b
985−mapMaybeM f = fmap fromJust . filter isJust . mapM f
985+mapMaybeM f = fmap fromJust . filter isJust . K.mapM f
987+{-# RULES "mapMaybeM serial" mapMaybeM = mapMaybeMSerial #-}
988+{-# INLINE mapMaybeMSerial #-}
989+mapMaybeMSerial :: Monad m => (a -> m (Maybe b)) -> SerialT m a -> SerialT m b
990+mapMaybeMSerial f m = fromStreamD $ D.mapMaybeM f $ toStreamD m
987------------------------------------------------------------------------------
992------------------------------------------------------------------------------
988-- Transformation by Reordering
993-- Transformation by Reordering