Copyright | (C) 2011-2015 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell98 |
- class Foldable t => Foldable1 t where
- intercalate1 :: (Foldable1 t, Semigroup m) => m -> t m -> m
- intercalateMap1 :: (Foldable1 t, Semigroup m) => m -> (a -> m) -> t a -> m
- traverse1_ :: (Foldable1 t, Apply f) => (a -> f b) -> t a -> f ()
- for1_ :: (Foldable1 t, Apply f) => t a -> (a -> f b) -> f ()
- sequenceA1_ :: (Foldable1 t, Apply f) => t (f a) -> f ()
- foldMapDefault1 :: (Foldable1 t, Monoid m) => (a -> m) -> t a -> m
- asum1 :: (Foldable1 t, Alt m) => t (m a) -> m a
- foldrM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a
- foldlM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a
Documentation
class Foldable t => Foldable1 t where #
fold1 :: Semigroup m => t m -> m #
foldMap1 :: Semigroup m => (a -> m) -> t a -> m #
toNonEmpty :: t a -> NonEmpty a #
Foldable1 V1 # | |
Foldable1 Par1 # | |
Foldable1 Identity # | |
Foldable1 NonEmpty # | |
Foldable1 Complex # | |
Foldable1 Tree # | |
Foldable1 f => Foldable1 (Rec1 f) # | |
Foldable1 ((,) a) # | |
Foldable1 f => Foldable1 (Lift f) # | |
(Foldable1 f, Foldable1 g) => Foldable1 ((:+:) f g) # | |
(Foldable1 f, Foldable1 g) => Foldable1 ((:*:) f g) # | |
(Foldable1 f, Foldable1 g) => Foldable1 ((:.:) f g) # | |
Bifoldable1 p => Foldable1 (Join * p) # | |
Foldable1 m => Foldable1 (IdentityT * m) # | |
Foldable1 (Tagged * a) # | |
Foldable1 f => Foldable1 (Reverse * f) # | |
Foldable1 f => Foldable1 (Backwards * f) # | |
Foldable1 f => Foldable1 (M1 i c f) # | |
(Foldable1 f, Foldable1 g) => Foldable1 (Sum * f g) # | |
(Foldable1 f, Foldable1 g) => Foldable1 (Product * f g) # | |
(Foldable1 f, Foldable1 g) => Foldable1 (Compose * * f g) # | |
Foldable1 g => Foldable1 (Joker * * g a) # | |
intercalate1 :: (Foldable1 t, Semigroup m) => m -> t m -> m #
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 #
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 () #
sequenceA1_ :: (Foldable1 t, Apply f) => t (f a) -> f () #
foldMapDefault1 :: (Foldable1 t, Monoid m) => (a -> m) -> t a -> m #
Usable default for foldMap, but only if you define foldMap1 yourself