Data.Semigroup.Bifoldable

semigroupoids-5.1: Semigroupoids: Category sans id

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

Data.Semigroup.Bifoldable

Description

Synopsis

- class Bifoldable t => Bifoldable1 t where
- bitraverse1_ :: (Bifoldable1 t, Apply f) => (a -> f b) -> (c -> f d) -> t a c -> f ()
- bifor1_ :: (Bifoldable1 t, Apply f) => t a c -> (a -> f b) -> (c -> f d) -> f ()
- bisequenceA1_ :: (Bifoldable1 t, Apply f) => t (f a) (f b) -> f ()
- bifoldMapDefault1 :: (Bifoldable1 t, Monoid m) => (a -> m) -> (b -> m) -> t a b -> m

# Documentation

class Bifoldable t => Bifoldable1 t where #

Methods

bifold1 :: Semigroup m => t m m -> m #

bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> t a b -> m #

Instances

Bifoldable1 Either # |
Methods bifold1 :: Semigroup m => Either m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Either a b -> m #
Bifoldable1 (,) # |
Methods bifold1 :: Semigroup m => (m, m) -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> (a, b) -> m #
Bifoldable1 Arg # |
Methods bifold1 :: Semigroup m => Arg m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Arg a b -> m #
Bifoldable1 ((,,) x) # |
Methods bifold1 :: Semigroup m => (x, m, m) -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> (x, a, b) -> m #
Bifoldable1 (Const *) # |
Methods bifold1 :: Semigroup m => Const * m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Const * a b -> m #
Bifoldable1 (Tagged *) # |
Methods bifold1 :: Semigroup m => Tagged * m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Tagged * a b -> m #
Bifoldable1 ((,,,) x y) # |
Methods bifold1 :: Semigroup m => (x, y, m, m) -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> (x, y, a, b) -> m #
Bifoldable1 ((,,,,) x y z) # |
Methods bifold1 :: Semigroup m => (x, y, z, m, m) -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> (x, y, z, a, b) -> m #
Bifoldable1 p => Bifoldable1 (WrappedBifunctor * * p) # |
Methods bifold1 :: Semigroup m => WrappedBifunctor * * p m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> WrappedBifunctor * * p a b -> m #
Foldable1 g => Bifoldable1 (Joker * * g) # |
Methods bifold1 :: Semigroup m => Joker * * g m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Joker * * g a b -> m #
Bifoldable1 p => Bifoldable1 (Flip * * p) # |
Methods bifold1 :: Semigroup m => Flip * * p m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Flip * * p a b -> m #
Foldable1 f => Bifoldable1 (Clown * * f) # |
Methods bifold1 :: Semigroup m => Clown * * f m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Clown * * f a b -> m #
(Bifoldable1 f, Bifoldable1 g) => Bifoldable1 (Product * * f g) # |
Methods bifold1 :: Semigroup m => Product * * f g m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Product * * f g a b -> m #
(Foldable1 f, Bifoldable1 p) => Bifoldable1 (Tannen * * * f p) # |
Methods bifold1 :: Semigroup m => Tannen * * * f p m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Tannen * * * f p a b -> m #
(Bifoldable1 p, Foldable1 f, Foldable1 g) => Bifoldable1 (Biff * * * * p f g) # |
Methods bifold1 :: Semigroup m => Biff * * * * p f g m m -> m # bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> Biff * * * * p f g a b -> m #

bitraverse1_ :: (Bifoldable1 t, Apply f) => (a -> f b) -> (c -> f d) -> t a c -> f () #

bifor1_ :: (Bifoldable1 t, Apply f) => t a c -> (a -> f b) -> (c -> f d) -> f () #

bisequenceA1_ :: (Bifoldable1 t, Apply f) => t (f a) (f b) -> f () #

bifoldMapDefault1 :: (Bifoldable1 t, Monoid m) => (a -> m) -> (b -> m) -> t a b -> m #

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