Copyright | (C) 2014-2015 Edward Kmett, Eric Mertens |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Stability | provisional |

Portability | portable |

Safe Haskell | Safe |

Language | Haskell98 |

This module provides generic deriving tools for monoids and semigroups for product-like structures.

- class GSemigroup f
- gmappend :: (Generic a, GSemigroup (Rep a)) => a -> a -> a
- class GSemigroup f => GMonoid f
- gmempty :: (Generic a, GMonoid (Rep a)) => a

# Documentation

class GSemigroup f Source

gmappend'

GSemigroup V1 | |

GSemigroup U1 | |

Semigroup a => GSemigroup (K1 i a) | |

(GSemigroup f, GSemigroup g) => GSemigroup ((:*:) f g) | |

GSemigroup f => GSemigroup (M1 i c f) |

gmappend :: (Generic a, GSemigroup (Rep a)) => a -> a -> a Source

class GSemigroup f => GMonoid f Source

gmempty'