monoid-extras 0.6 → 0.6.1
raw patch · 6 files changed
+26/−3 lines, 6 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- CHANGES +6/−0
- monoid-extras.cabal +3/−3
- src/Data/Monoid/Cut.hs +3/−0
- src/Data/Monoid/Deletable.hs +7/−0
- src/Data/Monoid/Recommend.hs +3/−0
- src/Data/Monoid/Split.hs +4/−0
CHANGES view
@@ -1,3 +1,9 @@+* 0.6.1: 16 Nov 2021++- Add more efficient `stimes` implementations for several `Semigroup`+ instances. Thanks to BlackCapCoder for the patch!+- Allow `base-4.16` and test on GHC 9.2.1.+ * 0.6: 8 May 2021 - Updates for GHC 8.10 and 9.0.
monoid-extras.cabal view
@@ -1,5 +1,5 @@ name: monoid-extras-version: 0.6+version: 0.6.1 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, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4, GHC == 9.0.1+tested-with: GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4 || ==9.0.1 || ==9.2.1 source-repository head type: git@@ -36,7 +36,7 @@ Data.Monoid.Split, Data.Monoid.WithSemigroup - build-depends: base >= 4.11 && < 4.16,+ build-depends: base >= 4.11 && < 4.17, groups < 0.6, semigroupoids >= 4.0 && < 5.4
src/Data/Monoid/Cut.hs view
@@ -61,6 +61,9 @@ (m1 :||: m2) <> (Uncut m2') = m1 :||: m2 <> m2' (m11 :||: _) <> (_ :||: m22) = m11 :||: m22 + stimes n (Uncut m) = Uncut (stimes n m)+ stimes _ (m ) = m+ instance (Semigroup m, Monoid m) => Monoid (Cut m) where mempty = Uncut mempty mappend = (<>)
src/Data/Monoid/Deletable.hs view
@@ -77,6 +77,13 @@ | l1 < r2 = Deletable (r1 + r2 - l1) m2 l2 | otherwise = Deletable r1 m1 (l2 + l1 - r2) + stimes n (Deletable r m l)+ | r == l = Deletable r (stimes n m) l+ | l < r = Deletable (i*(r-l) + l) m l+ | otherwise = Deletable r m (i*(l-r) + r)+ where+ i = fromIntegral n :: Int+ instance (Semigroup m, Monoid m) => Monoid (Deletable m) where mempty = Deletable 0 mempty 0 mappend = (<>)
src/Data/Monoid/Recommend.hs view
@@ -58,6 +58,9 @@ Commit a <> Recommend _ = Commit a Commit a <> Commit b = Commit (a <> b) + stimes n (Recommend m) = Recommend (stimes n m)+ stimes n (Commit m) = Commit (stimes n m)+ instance (Semigroup a, Monoid a) => Monoid (Recommend a) where mappend = (<>) mempty = Recommend mempty
src/Data/Monoid/Split.hs view
@@ -67,6 +67,10 @@ (m1 :| m2) <> (M m2') = m1 :| m2 <> m2' (m11 :| m12) <> (m21 :| m22) = m11 <> m12 <> m21 :| m22 + stimes n (M m ) = M (stimes n m)+ stimes 1 (m ) = m+ stimes n (m1 :| m2) = m1 <> stimes (pred n) (m2 <> m1) :| m2+ instance (Semigroup m, Monoid m) => Monoid (Split m) where mempty = M mempty mappend = (<>)