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

Portability | non-portable (MPTCs)
Stability | experimental
Maintainer | ekmett@gmail.com
Safe Haskell | Trustworthy

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

Apply f => Semigroup (Trav f) |
Apply f => Reducer (f a) (Trav f) |

newtype App f m Source

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

Constructors

App |

Fields

getApp :: f m

Instances

Functor f => Functor (App f) |
Apply f => Apply (App f) |
(Apply f, Reducer c m) => Reducer (f c) (App f m) |
(Apply f, Semigroup m) => Semigroup (App f m) |