@@ -106,7 +106,7 @@ module Streamly.Internal.Prelude
108 , product
108 , product
109− -- , mconcat
109+ , mconcat
111 -- -- ** To Summary (Maybe) (Full Folds)
111 -- -- ** To Summary (Maybe) (Full Folds)
112 , maximumBy
112 , maximumBy
@@ -540,7 +540,7 @@ import Prelude
540 notElem, maximum, minimum, head, last, tail, length, null,
540 notElem, maximum, minimum, head, last, tail, length, null,
541 reverse, iterate, init, and, or, lookup, foldr1, (!!),
541 reverse, iterate, init, and, or, lookup, foldr1, (!!),
542 scanl, scanl1, replicate, concatMap, span, splitAt, break,
542 scanl, scanl1, replicate, concatMap, span, splitAt, break,
543− repeat, concat)
543+ repeat, concat, mconcat)
545import qualified Data.Heap as H
545import qualified Data.Heap as H
546import qualified Data.Map.Strict as Map
546import qualified Data.Map.Strict as Map
@@ -1387,6 +1387,13 @@ sum = foldl' (+) 0
1387product :: (Monad m, Num a) => SerialT m a -> m a
1387product :: (Monad m, Num a) => SerialT m a -> m a
1388product = foldl' (*) 1
1388product = foldl' (*) 1
1390+-- | Fold a stream of monoid elements by appending them.
1393+{-# INLINE mconcat #-}
1394+mconcat :: (Monad m, Monoid a) => SerialT m a -> m a
1395+mconcat = foldr mappend mempty
1392-- minimum = 'minimumBy' compare
1399-- minimum = 'minimumBy' compare