packages feed

generic-monoid 0.1.0.0 → 0.1.0.1

raw patch · 4 files changed

+14/−43 lines, 4 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # Revision history for generic-monoid +## 0.1.0.1  -- 2020-06-14++* Support GHC 8.4+ ## 0.1.0.0  -- 2018-12-12  * Initial release.
− README.md
@@ -1,27 +0,0 @@-# Generic Monoid (and Semigroup)--This library provides a method of deriving `Semigroup` and `Monoid` instances-for your large product types. It does this using GHC generics, and can provides-a mechanism for using the `DerivingVia` extension to reduce boilerplate.--It only works if each field of your product type is itself a `Semigroup`/`Monoid`.--```haskell-{-# LANGUAGE DerivingStrategies #-}-{-# LANGUAGE DerivingVia        #-}-{-# LANGUAGE DeriveGeneric      #-}--import GHC.Generics-import Data.Monoid.Generic--data BigProduct = BigProduct-    { theList   :: [Int]-    , theSum    :: Sum Double-    , theString :: String-    } deriving (Generic, Eq)-    deriving Semigroup via GenericSemigroup BigProduct-    deriving Monoid    via GenericMonoid BigProduct--useIt :: Bool-useIt = (mempty <> mempty) == BigProduct [] 0 ""-```
generic-monoid.cabal view
@@ -1,5 +1,5 @@ name:                generic-monoid-version:             0.1.0.0+version:             0.1.0.1 synopsis:            Derive monoid instances for product types. description:         Using GHC's generics, allow for deriving `Monoid` and `Semigroup` instances for your product types. license:             BSD3@@ -9,15 +9,11 @@ copyright:           2018 Luke Clifton category:            Data build-type:          Simple-extra-source-files:  ChangeLog.md README.md+extra-source-files:  ChangeLog.md cabal-version:       >=1.10 -source-repository head-  type: git-  location: https://github.com/luke-clifton/generic-monoid- library   exposed-modules:     Data.Semigroup.Generic, Data.Monoid.Generic-  build-depends:       base >=4.12 && <4.13+  build-depends:       base >=4.11 && <4.15   hs-source-dirs:      src   default-language:    Haskell2010
src/Data/Monoid/Generic.hs view
@@ -1,12 +1,8 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE DerivingVia #-} {-# LANGUAGE DataKinds #-}-{-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-} module Data.Monoid.Generic     ( genericMappend     , genericMempty@@ -14,9 +10,9 @@     , GenericMonoid(..)     ) where -import GHC.TypeLits import Data.Semigroup.Generic import GHC.Generics+import GHC.TypeLits  -- | A newtype which allows you to using the @DerivingVia@ extension -- to reduce boilerplate.@@ -32,7 +28,9 @@ -- to infinite recursion. newtype GenericMonoid a = GenericMonoid a     deriving Show-    deriving Semigroup via a++instance Semigroup a => Semigroup (GenericMonoid a) where+    GenericMonoid a <> GenericMonoid b = GenericMonoid $ a <> b  instance     (Semigroup a, Generic a, MemptyProduct (Rep a))