reducers-3.12.4: Semigroups, specialized containers and a general map/reduce framework

Copyright | (c) Edward Kmett 2009-2011
License | BSD-style
Maintainer | ekmett@gmail.com
Stability | experimental
Portability | non-portable (MPTCs)
Safe Haskell | Trustworthy
Language | Haskell2010

Data.Semigroup.Apply

Description

Semigroups for working with `Apply`

Synopsis

- newtype Trav f = Trav {
  - getTrav :: f ()
  }
- newtype App f m = App {
  - getApp :: f m
  }

# Documentation

newtype Trav f Source #

A `Trav` uses an glues together `Applicative` actions with (*>) in the manner of `traverse_` from Data.Foldable. Any values returned by reduced actions are discarded.

Constructors

Trav |

Fields

- getTrav :: f ()

#### Instances

Instances details

Apply f => Semigroup (Trav f) Source # |
Instance details Defined in Data.Semigroup.Apply Methods (<>) :: Trav f -> Trav f -> Trav f Source # sconcat :: NonEmpty (Trav f) -> Trav f Source # stimes :: Integral b => b -> Trav f -> Trav f Source #
Apply f => Reducer (f a) (Trav f) Source # |
Instance details Defined in Data.Semigroup.Apply Methods unit :: f a -> Trav f Source # snoc :: Trav f -> f a -> Trav f Source # cons :: f a -> Trav f -> Trav f Source #

newtype App f m Source #

A `App` turns any `Apply` wrapped around a `Semigroup` into a `Semigroup`

Constructors

App |

Fields

- getApp :: f m

#### Instances

Instances details

Functor f => Functor (App f) Source # |
Instance details Defined in Data.Semigroup.Apply Methods fmap :: (a -> b) -> App f a -> App f b Source # (<$) :: a -> App f b -> App f a Source #
Apply f => Apply (App f) Source # |
Instance details Defined in Data.Semigroup.Apply Methods (<.>) :: App f (a -> b) -> App f a -> App f b Source # (.>) :: App f a -> App f b -> App f b Source # (<.) :: App f a -> App f b -> App f a Source # liftF2 :: (a -> b -> c) -> App f a -> App f b -> App f c Source #
(Apply f, Reducer c m) => Reducer (f c) (App f m) Source # |
Instance details Defined in Data.Semigroup.Apply Methods unit :: f c -> App f m Source # snoc :: App f m -> f c -> App f m Source # cons :: f c -> App f m -> App f m Source #
(Apply f, Semigroup m) => Semigroup (App f m) Source # |
Instance details Defined in Data.Semigroup.Apply Methods (<>) :: App f m -> App f m -> App f m Source # sconcat :: NonEmpty (App f m) -> App f m Source # stimes :: Integral b => b -> App f m -> App f m Source #