semigroupoids-4.3: Semigroupoids: Category sans id

Data.Semigroup.Foldable

Description

Synopsis

Documentation

class Foldable t => Foldable1 t where Source

Minimal complete definition

Nothing

Methods

fold1 :: Semigroup m => t m -> m Source

foldMap1 :: Semigroup m => (a -> m) -> t a -> m Source

Instances

 Foldable1 Identity Foldable1 Tree Foldable1 NonEmpty Foldable1 ((,) a) Foldable1 m => Foldable1 (IdentityT m) (Foldable1 f, Foldable1 g) => Foldable1 (Coproduct f g) (Foldable1 f, Foldable1 g) => Foldable1 (Product f g) (Foldable1 f, Foldable1 g) => Foldable1 (Compose f g)

intercalate1 :: (Foldable1 t, Semigroup m) => m -> t m -> m Source

Insert an m between each pair of 't m'. Equivalent to intercalateMap1 with id as the second argument.

>>> intercalate1 ", " \$ "hello" :| ["how", "are", "you"]
"hello, how, are, you"
>>> intercalate1 ", " \$ "hello" :| []
"hello"
>>> intercalate1 mempty \$ "I" :| ["Am", "Fine", "You?"]
"IAmFineYou?"

intercalateMap1 :: (Foldable1 t, Semigroup m) => m -> (a -> m) -> t a -> m Source

Insert m between each pair of m derived from a.

>>> intercalateMap1 " " show \$ True :| [False, True]
"True False True"
>>> intercalateMap1 " " show \$ True :| []
"True"

traverse1_ :: (Foldable1 t, Apply f) => (a -> f b) -> t a -> f () Source

for1_ :: (Foldable1 t, Apply f) => t a -> (a -> f b) -> f () Source

sequenceA1_ :: (Foldable1 t, Apply f) => t (f a) -> f () Source

foldMapDefault1 :: (Foldable1 t, Monoid m) => (a -> m) -> t a -> m Source

Usable default for foldMap, but only if you define foldMap1 yourself