monoid-extras 0.6.2 → 0.6.3
raw patch · 3 files changed
+40/−5 lines, 3 filesdep ~base
Dependency ranges changed: base
Files
- CHANGES +17/−0
- monoid-extras.cabal +5/−5
- src/Data/Monoid/Action.hs +18/−0
CHANGES view
@@ -1,8 +1,25 @@+* 0.6.3: 8 August 2024++- New instances (thanks to Clinton Mead):+ - `Action (First a) a`+ - `Action Void a`+ - `Action m a => Action (Identity m) a`+ * 0.6.2: 20 Dec 2022 - New class and newtypes in `Data.Monoid.Action` (thanks to Manuel Bärenz): - `Torsor` class for transitive group actions - `Regular` and `Conjugate` newtypes for groups acting on themselves++- r1 (27 March 2023):+ - allow `semigroupoids-6.0`+ - allow `base-4.18` and test on GHC 9.6.++- r2 (17 Oct 2023):+ - allow `base-4.19` and test on GHC 9.8.++- r3 (15 May 2024):+ - allow `base-4.20` and test on GHC 9.10. * 0.6.1: 16 Nov 2021
monoid-extras.cabal view
@@ -1,5 +1,5 @@ name: monoid-extras-version: 0.6.2+version: 0.6.3 synopsis: Various extra monoid-related definitions and utilities description: Various extra monoid-related definitions and utilities, such as monoid actions, monoid coproducts, semi-direct@@ -14,7 +14,7 @@ category: Data build-type: Simple cabal-version: >=1.10-tested-with: GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.1+tested-with: GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.5 || ==9.8.2 || ==9.10.1 source-repository head type: git@@ -36,9 +36,9 @@ Data.Monoid.Split, Data.Monoid.WithSemigroup - build-depends: base >= 4.11 && < 4.18,+ build-depends: base >= 4.11 && < 4.21, groups < 0.6,- semigroupoids >= 4.0 && < 5.4+ semigroupoids >= 4.0 && < 6.1 hs-source-dirs: src @@ -55,7 +55,7 @@ hs-source-dirs: benchmarks main-is: SemiDirectProduct.hs type: exitcode-stdio-1.0- build-depends: base >= 4.3 && < 4.18+ build-depends: base >= 4.3 && < 4.21 , semigroups , criterion , monoid-extras
src/Data/Monoid/Action.hs view
@@ -19,8 +19,12 @@ , Torsor(..) ) where +import Data.Functor.Identity (Identity(Identity)) import Data.Semigroup+import qualified Data.Semigroup as Semigroup import Data.Group+import qualified Data.Monoid as Monoid+import Data.Void (Void, absurd) ------------------------------------------------------------ -- Monoid and semigroup actions@@ -128,3 +132,17 @@ instance Group m => Action m (Conjugate m) where m1 `act` Conjugate m2 = Conjugate $ m1 <> m2 ~~ m1++instance Action (Semigroup.First a) a where+ act (Semigroup.First m) _ = m++instance Action (Monoid.First a) a where + act (Monoid.First m) s = case m of+ Nothing -> s+ Just m' -> m'++instance Action Void a where+ act = absurd++instance Action m s => Action (Identity m) s where+ act (Identity m) = act m