HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulesemigroups-0.20Haskell98

Data.Semigroup.Generic

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

  • 1 type
  • 2 classes
  • 2 values
  • Packagesemigroups-0.20
  • Exports5
  • LanguageHaskell98
  • LicenceBSD-3-Clause
  • SourceGeneric.hs

Generic method implementations

2 declarations

Adapter newtype

1 declaration
newtypenewtype GenericSemigroupMonoid a
#

An adapter newtype, suitable for DerivingVia. Its Semigroup and Monoid instances leverage the Generic-based defaults defined by gmappend and gmempty. Here is an example of how to use it:

{-# LANGUAGE DerivingVia #-}
import Data.Semigroup.Generic

data Pair a = MkPair a a
  deriving (Semigroup, Monoid) via (GenericSemigroupMonoid (Pair a))
Instances2Semigroup, Monoid

Internal classes

2 declarations