on master help sign in
Add mconcat
8f0ceb1Harendra Kumar
src/Streamly/Internal/Prelude.hs+9−2
@@ -106,7 +106,7 @@ module Streamly.Internal.Prelude
106 , length
106 , length
107 , sum
107 , sum
108 , product
108 , product
109− -- , mconcat
109+ , mconcat
110
110
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)
544
544
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
1389
1389
1390+-- | Fold a stream of monoid elements by appending them.
1391+--
1392+-- /Internal/
1393+{-# INLINE mconcat #-}
1394+mconcat :: (Monad m, Monoid a) => SerialT m a -> m a
1395+mconcat = foldr mappend mempty
1396+
1390-- |
1397-- |
1391-- @
1398-- @
1392-- minimum = 'minimumBy' compare
1399-- minimum = 'minimumBy' compare