Îõ³h$·C     ((C) 2014-2015 Edward Kmett, Eric Mertens BSD-style (see the file LICENSE)Edward Kmett  provisionalportableSafe?Ö×1 semigroups!An adapter newtype, suitable for  DerivingVia. Its  and  instances leverage the -based defaults defined by  and &. Here is an example of how to use it: ${-# LANGUAGE DerivingVia #-} import Data.Semigroup.Generic' data Pair a = MkPair a a deriving (, ) via ( (Pair a))  semigroupsGenerically generate a  (') operation for any type implementing ÿ. This operation will append two values by point-wise appending their component fields. It is only defined for product types.  a ( b c) =  ( a b) c  semigroupsGenerically generate a  ) for any product-like type implementing .%It is only defined for product types.   a = a =  a       &semigroups-0.20-H8NivvyNlyB91n3osqDowtData.Semigroup.GenericGenericSemigroupMonoidgetGenericSemigroupMonoidGMonoid GSemigroupgmappendgmempty$fGSemigroup:*:$fGSemigroupM1$fGSemigroupK1$fGSemigroupV1$fGSemigroupU1 $fGMonoid:*: $fGMonoidM1 $fGMonoidK1 $fGMonoidU1$fMonoidGenericSemigroupMonoid!$fSemigroupGenericSemigroupMonoidbaseGHC.Base SemigroupMonoid GHC.GenericsGeneric<>mempty