packages feed

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 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 = (<>)