non-negative 0.1.1.2 → 0.1.2
raw patch · 3 files changed
+18/−7 lines, 3 filesdep +semigroups
Dependencies added: semigroups
Files
- non-negative.cabal +4/−2
- src/Numeric/NonNegative/ChunkyPrivate.hs +7/−3
- src/Numeric/NonNegative/Wrapper.hs +7/−2
non-negative.cabal view
@@ -1,5 +1,5 @@ Name: non-negative-Version: 0.1.1.2+Version: 0.1.2 License: GPL License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -21,7 +21,7 @@ description: Choose the new smaller, split-up base package. Source-Repository this- Tag: 0.1.1.2+ Tag: 0.1.2 Type: darcs Location: http://code.haskell.org/~thielema/non-negative/ @@ -31,6 +31,7 @@ Library Build-Depends:+ semigroups >=0.1 && <1.0, utility-ht >= 0.0.1 && <0.1, QuickCheck >= 2.1 && <3 If flag(splitBase)@@ -55,6 +56,7 @@ GHC-Options: -Wall Build-Depends: QuickCheck,+ semigroups, utility-ht, base Main-Is: Test/Main.hs
src/Numeric/NonNegative/ChunkyPrivate.hs view
@@ -18,9 +18,10 @@ import qualified Numeric.NonNegative.Class as NonNeg import Control.Monad (liftM, liftM2)+import Data.Monoid (Monoid(mempty, mappend), )+import Data.Semigroup (Semigroup((<>)), ) import Data.Tuple.HT (mapSnd, ) -import qualified Data.Monoid as Mn import Test.QuickCheck (Arbitrary(arbitrary, shrink)) {- |@@ -151,7 +152,7 @@ -} instance (NonNeg.C a, Num a) => Num (T a) where- (+) = Mn.mappend+ (+) = mappend (Cons x) - (Cons y) = let (b,d) = snd $ glue x y d' = Cons d@@ -193,7 +194,10 @@ in (fromChunks cs, rm) -instance Mn.Monoid (T a) where+instance Semigroup (T a) where+ (<>) = lift2 (++)++instance Monoid (T a) where mempty = zero mappend = lift2 (++)
src/Numeric/NonNegative/Wrapper.hs view
@@ -15,8 +15,9 @@ Int, Integer, Float, Double, Ratio, Rational) where import qualified Numeric.NonNegative.Class as NonNeg-import Data.Monoid (Monoid, )-import qualified Data.Monoid as Monoid+import Data.Monoid (Monoid(mempty, mappend, mconcat))+import Data.Semigroup (Semigroup(sconcat, (<>)))+import Data.List.NonEmpty (NonEmpty((:|))) import Test.QuickCheck (Arbitrary(arbitrary, shrink)) import Data.Tuple.HT (mapPair, mapSnd, )@@ -104,6 +105,10 @@ lift2 :: (a -> a -> a) -> (T a -> T a -> T a) lift2 f (Cons x) (Cons y) = Cons $ f x y ++instance (Num a) => Semigroup (T a) where+ Cons x <> Cons y = Cons (x+y)+ sconcat (x :| xs) = Cons $ toNumber x + sum (map toNumber xs) instance (Num a) => Monoid (T a) where mempty = Cons 0