packages feed

monoid-subclasses 0.4.4 → 0.4.5

raw patch · 8 files changed

+58/−27 lines, 8 filesdep ~base

Dependency ranges changed: base

Files

CHANGELOG.md view
@@ -1,4 +1,8 @@ +Version 0.4.5+---------------+Added the Semigroup instances to fix the compilation errors with base-4.11+ Version 0.4.4 --------------- Fixed boundary condition bugs in ByteStringUTF8 uncovered by a new version of QuickCheck@@ -71,7 +75,7 @@  Version 0.3.4.1 ----------------Accomodating the text-1.0 release+Accommodating the text-1.0 release  * Introduced the function ByteStringUTF8.decode * Removed the utf-string dependency
Data/Monoid/Instances/ByteString/UTF8.hs view
@@ -1,5 +1,5 @@ {- -    Copyright 2013-2016 Mario Blazevic+    Copyright 2013-2018 Mario Blazevic      License: BSD3 (see BSD3-LICENSE.txt file) -}@@ -53,6 +53,7 @@ import Data.ByteString.Internal (w2c) import Data.ByteString.Unsafe (unsafeDrop, unsafeHead, unsafeTail, unsafeTake, unsafeIndex) +import Data.Semigroup -- (Semigroup(..)) import Data.Monoid -- (Monoid(mempty, mappend)) import Data.Monoid.Cancellative (LeftReductiveMonoid(..), LeftCancellativeMonoid, LeftGCDMonoid(..)) import Data.Monoid.Null (MonoidNull(..), PositiveMonoid)@@ -79,6 +80,10 @@          Just{} -> (ByteStringUTF8 bs, mempty)    where (prefix, suffix) = ByteString.breakEnd byteStartsCharacter bs          l = ByteString.last bs++instance Semigroup ByteStringUTF8 where+   ByteStringUTF8 a <> ByteStringUTF8 b = ByteStringUTF8 (a <> b)+   {-# INLINE (<>) #-}  instance Monoid ByteStringUTF8 where    mempty = ByteStringUTF8 ByteString.empty
Data/Monoid/Instances/Concat.hs view
@@ -1,5 +1,5 @@ {- -    Copyright 2013-2016 Mario Blazevic+    Copyright 2013-2018 Mario Blazevic      License: BSD3 (see BSD3-LICENSE.txt file) -}@@ -19,7 +19,8 @@ import qualified Data.Foldable as Foldable import qualified Data.List as List import Data.String (IsString(..))-import Data.Monoid -- (Monoid(..), (<>), First(..), Sum(..))+import Data.Semigroup (Semigroup(..))+import Data.Monoid -- (Monoid(..), First(..), Sum(..)) import Data.Monoid.Cancellative (LeftReductiveMonoid(..), RightReductiveMonoid(..),                                  LeftGCDMonoid(..), RightGCDMonoid(..)) import Data.Monoid.Null (MonoidNull(null), PositiveMonoid)@@ -87,12 +88,15 @@    foldr' f a (Leaf x) = f x a    foldr' f a (x :<> y) = let a' = Foldable.foldr' f a y in Foldable.foldr' f a' x -instance PositiveMonoid a => Monoid (Concat a) where-   mempty = Leaf mempty-   mappend x y +instance PositiveMonoid a => Semigroup (Concat a) where+   x <> y       | null x = y       | null y = x       | otherwise = x :<> y++instance PositiveMonoid a => Monoid (Concat a) where+   mempty = Leaf mempty+   mappend = (<>)  instance PositiveMonoid a => MonoidNull (Concat a) where    null (Leaf x) = null x
Data/Monoid/Instances/Measured.hs view
@@ -1,5 +1,5 @@ {- -    Copyright 2013-2015 Mario Blazevic+    Copyright 2013-2018 Mario Blazevic      License: BSD3 (see BSD3-LICENSE.txt file) -}@@ -17,6 +17,7 @@ import Data.Functor -- ((<$>)) import qualified Data.List as List import Data.String (IsString(..))+import Data.Semigroup -- (Semigroup(..)) import Data.Monoid -- (Monoid(..)) import Data.Monoid.Cancellative (LeftReductiveMonoid(..), RightReductiveMonoid(..),                                  LeftGCDMonoid(..), RightGCDMonoid(..))@@ -41,6 +42,9 @@  instance Ord a => Ord (Measured a) where    compare (Measured _ x) (Measured _ y) = compare x y++instance StableFactorialMonoid a => Semigroup (Measured a) where+   Measured m a <> Measured n b = Measured (m + n) (mappend a b)  instance StableFactorialMonoid a => Monoid (Measured a) where    mempty = Measured 0 mempty
Data/Monoid/Instances/Positioned.hs view
@@ -1,5 +1,5 @@ {--    Copyright 2014-2015 Mario Blazevic+    Copyright 2014-2018 Mario Blazevic      License: BSD3 (see BSD3-LICENSE.txt file) -}@@ -29,7 +29,8 @@ import qualified Data.List as List import Data.String (IsString(..)) -import Data.Monoid -- (Monoid(..), (<>), Endo(..))+import Data.Semigroup -- (Semigroup(..))+import Data.Monoid -- (Monoid(..), Endo(..)) import Data.Monoid.Cancellative (LeftReductiveMonoid(..), RightReductiveMonoid(..), LeftGCDMonoid(..), RightGCDMonoid(..)) import Data.Monoid.Null (MonoidNull(null), PositiveMonoid) import Data.Monoid.Factorial (FactorialMonoid(..), StableFactorialMonoid)@@ -99,16 +100,13 @@    showsPrec prec (LinePositioned pos l lpos c) =       ("Line " ++) . shows l . (", column " ++) . shows (pos - lpos) . (": " ++) . showsPrec prec c -instance StableFactorialMonoid m => Monoid (OffsetPositioned m) where-   mempty = pure mempty-   mappend (OffsetPositioned p1 c1) (OffsetPositioned p2 c2) =+instance StableFactorialMonoid m => Semigroup (OffsetPositioned m) where+   OffsetPositioned p1 c1 <> OffsetPositioned p2 c2 =       OffsetPositioned (if p1 /= 0 || p2 == 0 then p1 else max 0 $ p2 - length c1) (mappend c1 c2)-   {-# INLINE mempty #-}-   {-# INLINE mappend #-}+   {-# INLINE (<>) #-} -instance (StableFactorialMonoid m, TextualMonoid m) => Monoid (LinePositioned m) where-   mempty = pure mempty-   mappend (LinePositioned p1 l1 lp1 c1) (LinePositioned p2 l2 lp2 c2)+instance (StableFactorialMonoid m, TextualMonoid m) => Semigroup (LinePositioned m) where+   LinePositioned p1 l1 lp1 c1 <> LinePositioned p2 l2 lp2 c2      | p1 /= 0 || p2 == 0 = LinePositioned p1 l1 lp1 c      | otherwise = LinePositioned p2' l2' lp2' c      where c = mappend c1 c2@@ -118,6 +116,17 @@            countLines :: Int -> Char -> Int            countLines n '\n' = succ n            countLines n _ = n+   {-# INLINE (<>) #-}++instance StableFactorialMonoid m => Monoid (OffsetPositioned m) where+   mempty = pure mempty+   mappend = (<>)+   {-# INLINE mempty #-}+   {-# INLINE mappend #-}++instance (StableFactorialMonoid m, TextualMonoid m) => Monoid (LinePositioned m) where+   mempty = pure mempty+   mappend = (<>)    {-# INLINE mempty #-}    {-# INLINE mappend #-} 
Data/Monoid/Instances/Stateful.hs view
@@ -1,5 +1,5 @@ {--    Copyright 2013-2015 Mario Blazevic+    Copyright 2013-2018 Mario Blazevic      License: BSD3 (see BSD3-LICENSE.txt file) -}@@ -23,7 +23,8 @@ import Data.Functor -- ((<$>)) import qualified Data.List as List import Data.String (IsString(..))-import Data.Monoid -- (Monoid(..), (<>))+import Data.Semigroup -- (Semigroup(..))+import Data.Monoid -- (Monoid(..)) import Data.Monoid.Cancellative (LeftReductiveMonoid(..), LeftGCDMonoid(..), RightReductiveMonoid(..), RightGCDMonoid(..)) import Data.Monoid.Null (MonoidNull(null), PositiveMonoid) import Data.Monoid.Factorial (FactorialMonoid(..), StableFactorialMonoid)@@ -55,9 +56,13 @@    pure m = Stateful (m, mempty)    Stateful (f, s1) <*> Stateful (x, s2) = Stateful (f x, s1 <> s2) +instance (Semigroup a, Semigroup b) => Semigroup (Stateful a b) where+   Stateful x <> Stateful y = Stateful (x <> y)+   {-# INLINE (<>) #-}+ instance (Monoid a, Monoid b) => Monoid (Stateful a b) where    mempty = Stateful mempty-   mappend (Stateful x) (Stateful y) = Stateful (x <> y)+   mappend = (<>)    {-# INLINE mempty #-}    {-# INLINE mappend #-} 
Test/TestMonoidSubclasses.hs view
@@ -1,5 +1,5 @@ {- -    Copyright 2013-2017 Mario Blazevic+    Copyright 2013-2018 Mario Blazevic      License: BSD3 (see BSD3-LICENSE.txt file) -}@@ -757,7 +757,7 @@ textualFactors = map characterize . factors    where characterize prime = maybe (Left prime) Right (Textual.characterPrefix prime) -newtype TestString = TestString String deriving (Eq, Show, Arbitrary, CoArbitrary, +newtype TestString = TestString String deriving (Eq, Show, Arbitrary, CoArbitrary, Semigroup,                                                  Monoid, LeftReductiveMonoid, LeftCancellativeMonoid, LeftGCDMonoid,                                                  MonoidNull, PositiveMonoid, StableFactorialMonoid, IsString) 
monoid-subclasses.cabal view
@@ -1,5 +1,5 @@ Name:                monoid-subclasses-Version:             0.4.4+Version:             0.4.5 Cabal-Version:       >= 1.10 Build-Type:          Simple Synopsis:            Subclasses of Monoid@@ -11,7 +11,7 @@    License:             BSD3 License-file:        BSD3-LICENSE.txt-Copyright:           (c) 2013-2017 Mario Blažević+Copyright:           (c) 2013-2018 Mario Blažević Author:              Mario Blažević Maintainer:          Mario Blažević <blamario@protonmail.com> Homepage:            https://github.com/blamario/monoid-subclasses/@@ -25,7 +25,7 @@   Exposed-Modules:   Data.Monoid.Cancellative, Data.Monoid.Factorial, Data.Monoid.Null, Data.Monoid.Textual,                      Data.Monoid.Instances.ByteString.UTF8, Data.Monoid.Instances.Concat,                      Data.Monoid.Instances.Measured, Data.Monoid.Instances.Positioned, Data.Monoid.Instances.Stateful-  Build-Depends:     base >= 4.5 && < 5,+  Build-Depends:     base >= 4.9 && < 5,                      bytestring >= 0.9 && < 1.0, containers >= 0.5.7.0 && < 0.6, text >= 0.11 && < 1.3,                      primes == 0.2.*, vector >= 0.9 && < 0.13   GHC-options:       -Wall@@ -33,7 +33,7 @@  test-suite Main   Type:              exitcode-stdio-1.0-  Build-Depends:     base >= 4.5 && < 5,+  Build-Depends:     base >= 4.9 && < 5,                      bytestring >= 0.9 && < 1.0, containers >= 0.5.7.0 && < 0.6, text >= 0.11 && < 1.3,                      vector >= 0.9 && < 0.13, primes == 0.2.*,                      QuickCheck >= 2.9 && < 3, quickcheck-instances >= 0.3.12 && <0.4,