A semigroup is a binary associative operation.

- class Semigroup a
- data Identity a
- (<++>) :: (Applicative f, Semigroup a) => f a -> f a -> f a

# Documentation

A binary operation that must satisfy associativity. Unlike a `Monoid`

, an identity in not essential.

Semigroup () | |

Semigroup All | |

Semigroup Any | |

Semigroup [a] | |

Semigroup a => Semigroup (IO a) | |

Semigroup a => Semigroup (Dual a) | |

Semigroup (Endo a) | |

Num a => Semigroup (Sum a) | |

Num a => Semigroup (Product a) | |

Semigroup (First a) | |

Semigroup (Last a) | |

Semigroup a => Semigroup (Maybe a) | |

Monoid a => Semigroup (Identity a) | |

Semigroup b => Semigroup (a -> b) | |

(Semigroup a, Semigroup b) => Semigroup (a, b) | |

(Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) |

A wrapper used to construct a `Semigroup`

from a `Monoid`

.

(<++>) :: (Applicative f, Semigroup a) => f a -> f a -> f aSource

A binary associative operation lifted into an applicative functor.