module Foldable ( -- * Foldable Foldable(fold, foldMap, foldr, foldr', foldl', toList, null, length, elem, sum, product) , foldrM , foldlM , traverse_ , for_ , sequenceA_ , asum , msum , concatMap , and , or , all , notElem , find , foldM , foldM_ , foldMapBy , foldBy , inits , tails , insert , group , groupBy , groupWith , groupAllWith -- * Foldable1 , Foldable1(..) , asum1 , foldlM1 , foldrM1 , for1_ , intercalate1 , intercalateMap1 , sequenceA1_ , traverse1_ ) where import Control.Monad import Data.Foldable import Data.List.NonEmpty (group, groupAllWith, groupBy, groupWith, inits, insert, tails) import Data.Reflection import Data.Semigroup.Foldable (Foldable1(fold1, foldMap1, toNonEmpty), asum1, foldlM1, foldrM1, for1_, intercalate1, intercalateMap1, sequenceA1_, traverse1_)