testing-feat 1.0.0.0 → 1.0.1.0
raw patch · 3 files changed
+21/−8 lines, 3 filesdep +semigroupsPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: semigroups
API changes (from Hackage documentation)
- Test.Feat.Enumerate: instance GHC.Base.Monoid a => GHC.Base.Monoid (Test.Feat.Enumerate.RevList a)
+ Test.Feat.Enumerate: instance (GHC.Base.Monoid a, Data.Semigroup.Semigroup a) => GHC.Base.Monoid (Test.Feat.Enumerate.RevList a)
+ Test.Feat.Enumerate: instance Data.Semigroup.Semigroup (Test.Feat.Enumerate.Enumerate a)
+ Test.Feat.Enumerate: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Test.Feat.Enumerate.RevList a)
+ Test.Feat.Finite: instance Data.Semigroup.Semigroup (Test.Feat.Finite.Finite a)
Files
- Test/Feat/Enumerate.hs +14/−7
- Test/Feat/Finite.hs +4/−0
- testing-feat.cabal +3/−1
Test/Feat/Enumerate.hs view
@@ -36,7 +36,8 @@ -- base import Control.Sized import Control.Applicative-import Data.Monoid+import Data.Semigroup+import Data.Monoid hiding ((<>)) import Data.Typeable import Data.List(transpose) import Test.Feat.Finite@@ -75,6 +76,9 @@ pair = cartesian fin k = fromParts [finFin k] +instance Semigroup (Enumerate a) where+ (<>) = union+ -- | The @'mappend'@ is (disjoint) @'union'@ instance Monoid (Enumerate a) where mempty = empty@@ -150,14 +154,17 @@ instance Functor RevList where fmap f = toRev . fmap f . fromRev --- Maybe this should be append instead?--- | Padded zip-instance Monoid a => Monoid (RevList a) where- mempty = toRev[]- mappend xs ys = toRev$ zipMon (fromRev xs) (fromRev ys) where- zipMon :: Monoid a => [a] -> [a] -> [a]+instance Semigroup a => Semigroup (RevList a) where+ (<>) xs ys = toRev $ zipMon (fromRev xs) (fromRev ys) where+ zipMon :: Semigroup a => [a] -> [a] -> [a] zipMon (x:xs) (y:ys) = x <> y : zipMon xs ys zipMon xs ys = xs ++ ys++-- Maybe this should be append instead?+-- | Padded zip+instance (Monoid a, Semigroup a) => Monoid (RevList a) where+ mempty = toRev[]+ mappend = (<>) -- | Constructs a "Reverse list" variant of a given list. In a sensible -- Haskell implementation evaluating any inital segment of
Test/Feat/Finite.hs view
@@ -2,6 +2,7 @@ module Test.Feat.Finite (Finite (..), Index, fromFinite, finFin) where import Control.Applicative +import Data.Semigroup import Data.Monoid type Index = Integer @@ -29,6 +30,9 @@ instance Alternative Finite where empty = finEmpty (<|>) = finUnion + +instance Semigroup (Finite a) where + (<>) = finUnion instance Monoid (Finite a) where mempty = finEmpty
testing-feat.cabal view
@@ -1,5 +1,5 @@ Name: testing-feat-Version: 1.0.0.0+Version: 1.0.1.0 Synopsis: Functional Enumeration of Algebraic Types Description: Feat (Functional Enumeration of Algebraic Types) provides enumerations as functions from natural numbers to values@@ -53,3 +53,5 @@ QuickCheck > 2 && < 3, size-based < 0.2, testing-type-modifiers < 0.2+ if impl(ghc < 8.0)+ Build-depends: semigroups < 0.19