packages feed

algebra 0.9.0.3 → 2.0

raw patch · 23 files changed

+119/−223 lines, 23 filesdep ~basedep ~containersdep ~keysPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, containers, keys, semigroupoids, semigroups, tagged, void

API changes (from Hackage documentation)

- Numeric.Additive.Class: replicate1p :: (Additive r, Whole n) => n -> r -> r
- Numeric.Additive.Class: replicate1pIdempotent :: Natural -> r -> r
- Numeric.Algebra: replicate :: (Monoidal m, Whole n) => n -> m -> m
- Numeric.Algebra: replicate1p :: (Additive r, Whole n) => n -> r -> r
- Numeric.Algebra: replicate1pIdempotent :: Natural -> r -> r
- Numeric.Algebra: replicate1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r
- Numeric.Algebra: replicateIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
- Numeric.Algebra: replicateRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r
- Numeric.Algebra.Class: replicate :: (Monoidal m, Whole n) => n -> m -> m
- Numeric.Algebra.Class: replicateIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
- Numeric.Module.Representable: replicate1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r
- Numeric.Module.Representable: replicateRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r
- Numeric.Natural: class Integral n => Whole n
- Numeric.Natural: data Natural
- Numeric.Natural: toNatural :: Whole n => n -> Natural
- Numeric.Natural.Internal: Natural :: Integer -> Natural
- Numeric.Natural.Internal: class Integral n => Whole n
- Numeric.Natural.Internal: instance Bits Natural
- Numeric.Natural.Internal: instance Enum Natural
- Numeric.Natural.Internal: instance Eq Natural
- Numeric.Natural.Internal: instance Integral Natural
- Numeric.Natural.Internal: instance Ix Natural
- Numeric.Natural.Internal: instance Num Natural
- Numeric.Natural.Internal: instance Ord Natural
- Numeric.Natural.Internal: instance Read Natural
- Numeric.Natural.Internal: instance Real Natural
- Numeric.Natural.Internal: instance Show Natural
- Numeric.Natural.Internal: instance Whole Natural
- Numeric.Natural.Internal: instance Whole Word
- Numeric.Natural.Internal: instance Whole Word16
- Numeric.Natural.Internal: instance Whole Word32
- Numeric.Natural.Internal: instance Whole Word64
- Numeric.Natural.Internal: instance Whole Word8
- Numeric.Natural.Internal: newtype Natural
- Numeric.Natural.Internal: runNatural :: Natural -> Integer
- Numeric.Natural.Internal: toNatural :: Whole n => n -> Natural
- Numeric.Natural.Internal: unsafePred :: Whole n => n -> n
+ Numeric.Additive.Class: sinnum1p :: (Additive r, Whole n) => n -> r -> r
+ Numeric.Additive.Class: sinnum1pIdempotent :: Natural -> r -> r
+ Numeric.Algebra: sinnum :: (Monoidal m, Whole n) => n -> m -> m
+ Numeric.Algebra: sinnum1p :: (Additive r, Whole n) => n -> r -> r
+ Numeric.Algebra: sinnum1pIdempotent :: Natural -> r -> r
+ Numeric.Algebra: sinnum1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r
+ Numeric.Algebra: sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
+ Numeric.Algebra: sinnumRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r
+ Numeric.Algebra.Class: sinnum :: (Monoidal m, Whole n) => n -> m -> m
+ Numeric.Algebra.Class: sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r
+ Numeric.Module.Representable: sinnum1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r
+ Numeric.Module.Representable: sinnumRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r
- Numeric.Algebra: data Natural
+ Numeric.Algebra: data Natural :: *

Files

Numeric/Additive/Class.hs view
@@ -8,7 +8,7 @@   , Abelian   -- * Additive Monoids   , Idempotent-  , replicate1pIdempotent+  , sinnum1pIdempotent   -- * Partitionable semigroups   , Partitionable(..)   ) where@@ -29,15 +29,15 @@  -- |  -- > (a + b) + c = a + (b + c)--- > replicate 1 a = a--- > replicate (2 * n) a = replicate n a + replicate n a--- > replicate (2 * n + 1) a = replicate n a + replicate n a + a+-- > sinnum 1 a = a+-- > sinnum (2 * n) a = sinnum n a + sinnum n a+-- > sinnum (2 * n + 1) a = sinnum n a + sinnum n a + a class Additive r where   (+) :: r -> r -> r -  -- | replicate1p n r = replicate (1 + n) r-  replicate1p :: Whole n => n -> r -> r-  replicate1p y0 x0 = f x0 (1 Prelude.+ y0)+  -- | sinnum1p n r = sinnum (1 + n) r+  sinnum1p :: Whole n => n -> r -> r+  sinnum1p y0 x0 = f x0 (1 Prelude.+ y0)     where       f x y         | even y = f (x + x) (y `quot` 2)@@ -58,86 +58,86 @@  instance Additive r => Additive (b -> r) where   f + g = \e -> f e + g e -  replicate1p n f e = replicate1p n (f e)+  sinnum1p n f e = sinnum1p n (f e)   sumWith1 f xs e = sumWith1 (`f` e) xs  instance (HasTrie b, Additive r) => Additive (b :->: r) where   (+) = zipWith (+)-  replicate1p = fmap . replicate1p+  sinnum1p = fmap . sinnum1p   sumWith1 f xs = tabulate $ \e -> sumWith1 (\a -> index (f a) e) xs  instance Additive Bool where   (+) = (||)-  replicate1p _ a = a+  sinnum1p _ a = a  instance Additive Natural where   (+) = (Prelude.+)-  replicate1p n r = (1 Prelude.+ toNatural n) * r+  sinnum1p n r = (1 Prelude.+ toNatural n) * r  instance Additive Integer where    (+) = (Prelude.+)-  replicate1p n r = (1 Prelude.+ toInteger n) * r+  sinnum1p n r = (1 Prelude.+ toInteger n) * r  instance Additive Int where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Int8 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Int16 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Int32 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Int64 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Word where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Word8 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Word16 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Word32 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive Word64 where   (+) = (Prelude.+)-  replicate1p n r = fromIntegral (1 Prelude.+ n) * r+  sinnum1p n r = fromIntegral (1 Prelude.+ n) * r  instance Additive () where   _ + _ = ()-  replicate1p _ _ = () +  sinnum1p _ _ = ()    sumWith1 _ _ = ()  instance (Additive a, Additive b) => Additive (a,b) where   (a,b) + (i,j) = (a + i, b + j)-  replicate1p n (a,b) = (replicate1p n a, replicate1p n b)+  sinnum1p n (a,b) = (sinnum1p n a, sinnum1p n b)  instance (Additive a, Additive b, Additive c) => Additive (a,b,c) where   (a,b,c) + (i,j,k) = (a + i, b + j, c + k)-  replicate1p n (a,b,c) = (replicate1p n a, replicate1p n b, replicate1p n c)+  sinnum1p n (a,b,c) = (sinnum1p n a, sinnum1p n b, sinnum1p n c)  instance (Additive a, Additive b, Additive c, Additive d) => Additive (a,b,c,d) where   (a,b,c,d) + (i,j,k,l) = (a + i, b + j, c + k, d + l)-  replicate1p n (a,b,c,d) = (replicate1p n a, replicate1p n b, replicate1p n c, replicate1p n d)+  sinnum1p n (a,b,c,d) = (sinnum1p n a, sinnum1p n b, sinnum1p n c, sinnum1p n d)  instance (Additive a, Additive b, Additive c, Additive d, Additive e) => Additive (a,b,c,d,e) where   (a,b,c,d,e) + (i,j,k,l,m) = (a + i, b + j, c + k, d + l, e + m)-  replicate1p n (a,b,c,d,e) = (replicate1p n a, replicate1p n b, replicate1p n c, replicate1p n d, replicate1p n e)+  sinnum1p n (a,b,c,d,e) = (sinnum1p n a, sinnum1p n b, sinnum1p n c, sinnum1p n d, sinnum1p n e)   concat :: NonEmpty (NonEmpty a) -> NonEmpty a@@ -212,8 +212,8 @@ -- class Additive r => Idempotent r -replicate1pIdempotent :: Natural -> r -> r-replicate1pIdempotent _ r = r+sinnum1pIdempotent :: Natural -> r -> r+sinnum1pIdempotent _ r = r  instance Idempotent () instance Idempotent Bool
Numeric/Algebra.hs view
@@ -9,8 +9,8 @@   , Abelian   -- ** additive idempotent semigroups   , Idempotent-  , replicate1pIdempotent-  , replicateIdempotent+  , sinnum1pIdempotent+  , sinnumIdempotent   -- ** partitionable additive semigroups   , Partitionable(..)   -- ** additive monoids@@ -108,9 +108,9 @@   , Whole(toNatural)    -- * Representable Additive-  , addRep, replicate1pRep+  , addRep, sinnum1pRep   -- * Representable Monoidal-  , zeroRep, replicateRep+  , zeroRep, sinnumRep   -- * Representable Group   , negateRep, minusRep, subtractRep, timesRep   -- * Representable Multiplicative (via Algebra)
Numeric/Algebra/Class.hs view
@@ -14,7 +14,7 @@   -- * Additive Monoids   , Monoidal(..)   , sum-  , replicateIdempotent+  , sinnumIdempotent   -- * Associative algebras   , Algebra(..)   -- * Coassociative coalgebras@@ -32,7 +32,7 @@ import Data.Map (Map) import Data.Monoid (mappend) -- import Data.Semigroup.Foldable-import Data.Sequence hiding (reverse,replicate,index)+import Data.Sequence hiding (reverse,index) import Data.Set (Set) import Data.Word import Numeric.Additive.Class@@ -490,9 +490,9 @@ class (LeftModule Natural m, RightModule Natural m) => Monoidal m where   zero :: m -  replicate :: Whole n => n -> m -> m-  replicate 0 _  = zero-  replicate n x0 = f x0 n+  sinnum :: Whole n => n -> m -> m+  sinnum 0 _  = zero+  sinnum n x0 = f x0 n     where       f x y         | even y = f (x + x) (y `quot` 2)@@ -509,91 +509,91 @@ sum :: (Foldable f, Monoidal m) => f m -> m sum = sumWith id -replicateIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r-replicateIdempotent 0 _ = zero-replicateIdempotent _ x = x+sinnumIdempotent :: (Integral n, Idempotent r, Monoidal r) => n -> r -> r+sinnumIdempotent 0 _ = zero+sinnumIdempotent _ x = x  instance Monoidal Bool where    zero = False-  replicate 0 _ = False-  replicate _ r = r+  sinnum 0 _ = False+  sinnum _ r = r  instance Monoidal Natural where   zero = 0-  replicate n r = toNatural n * r+  sinnum n r = toNatural n * r  instance Monoidal Integer where    zero = 0-  replicate n r = toInteger n * r+  sinnum n r = toInteger n * r  instance Monoidal Int where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Int8 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Int16 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Int32 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Int64 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Word where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Word8 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Word16 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Word32 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal Word64 where    zero = 0-  replicate n r = fromIntegral n * r+  sinnum n r = fromIntegral n * r  instance Monoidal r => Monoidal (e -> r) where   zero = const zero   sumWith f xs e = sumWith (`f` e) xs-  replicate n r e = replicate n (r e)+  sinnum n r e = sinnum n (r e)  instance (HasTrie e, Monoidal r) => Monoidal (e :->: r) where   zero = pure zero   sumWith f xs = tabulate $ \e -> sumWith (\a -> index (f a) e) xs-  replicate n r = tabulate $ replicate n . index r+  sinnum n r = tabulate $ sinnum n . index r  instance Monoidal () where    zero = ()-  replicate _ () = ()+  sinnum _ () = ()   sumWith _ _ = ()  instance (Monoidal a, Monoidal b) => Monoidal (a,b) where   zero = (zero,zero)-  replicate n (a,b) = (replicate n a, replicate n b)+  sinnum n (a,b) = (sinnum n a, sinnum n b)  instance (Monoidal a, Monoidal b, Monoidal c) => Monoidal (a,b,c) where   zero = (zero,zero,zero)-  replicate n (a,b,c) = (replicate n a, replicate n b, replicate n c)+  sinnum n (a,b,c) = (sinnum n a, sinnum n b, sinnum n c)  instance (Monoidal a, Monoidal b, Monoidal c, Monoidal d) => Monoidal (a,b,c,d) where   zero = (zero,zero,zero,zero)-  replicate n (a,b,c,d) = (replicate n a, replicate n b, replicate n c, replicate n d)+  sinnum n (a,b,c,d) = (sinnum n a, sinnum n b, sinnum n c, sinnum n d)  instance (Monoidal a, Monoidal b, Monoidal c, Monoidal d, Monoidal e) => Monoidal (a,b,c,d,e) where   zero = (zero,zero,zero,zero,zero)-  replicate n (a,b,c,d,e) = (replicate n a, replicate n b, replicate n c, replicate n d, replicate n e)+  sinnum n (a,b,c,d,e) = (sinnum n a, sinnum n b, sinnum n c, sinnum n d, sinnum n e) 
Numeric/Algebra/Complex.hs view
@@ -150,7 +150,7 @@  instance Additive r => Additive (Complex r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Complex s) where   r .* Complex a b = Complex (r .* a) (r .* b)@@ -160,7 +160,7 @@  instance Monoidal r => Monoidal (Complex r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Complex r) where   (-) = minusRep
Numeric/Algebra/Dual.hs view
@@ -129,7 +129,7 @@  instance Additive r => Additive (Dual r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Dual s) where   r .* Dual a b = Dual (r .* a) (r .* b)@@ -139,7 +139,7 @@  instance Monoidal r => Monoidal (Dual r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Dual r) where   (-) = minusRep
Numeric/Algebra/Hyperbolic.hs view
@@ -121,7 +121,7 @@  instance Additive r => Additive (Hyper' r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Hyper' s) where   r .* Hyper' a b = Hyper' (r .* a) (r .* b)@@ -131,7 +131,7 @@  instance Monoidal r => Monoidal (Hyper' r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Hyper' r) where   (-) = minusRep
Numeric/Algebra/Quaternion.hs view
@@ -180,7 +180,7 @@  instance Additive r => Additive (Quaternion r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Quaternion s) where   r .* Quaternion a b c d =@@ -192,7 +192,7 @@  instance Monoidal r => Monoidal (Quaternion r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Quaternion r) where   (-) = minusRep
Numeric/Coalgebra/Dual.hs view
@@ -129,7 +129,7 @@  instance Additive r => Additive (Dual' r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Dual' s) where   r .* Dual' a b = Dual' (r .* a) (r .* b)@@ -139,7 +139,7 @@  instance Monoidal r => Monoidal (Dual' r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Dual' r) where   (-) = minusRep
Numeric/Coalgebra/Hyperbolic.hs view
@@ -121,7 +121,7 @@  instance Additive r => Additive (Hyper r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Hyper s) where   r .* Hyper a b = Hyper (r .* a) (r .* b)@@ -131,7 +131,7 @@  instance Monoidal r => Monoidal (Hyper r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Hyper r) where   (-) = minusRep
Numeric/Coalgebra/Quaternion.hs view
@@ -180,7 +180,7 @@  instance Additive r => Additive (Quaternion' r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Quaternion' s) where   r .* Quaternion' a b c d =@@ -192,7 +192,7 @@  instance Monoidal r => Monoidal (Quaternion' r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Quaternion' r) where   (-) = minusRep
Numeric/Coalgebra/Trigonometric.hs view
@@ -157,7 +157,7 @@  instance Additive r => Additive (Trig r) where   (+) = addRep -  replicate1p = replicate1pRep+  sinnum1p = sinnum1pRep  instance LeftModule r s => LeftModule r (Trig s) where   r .* Trig a b = Trig (r .* a) (r .* b)@@ -167,7 +167,7 @@  instance Monoidal r => Monoidal (Trig r) where   zero = zeroRep-  replicate = replicateRep+  sinnum = sinnumRep  instance Group r => Group (Trig r) where   (-) = minusRep
Numeric/Covector.hs view
@@ -79,7 +79,7 @@  instance Additive r => Additive (Covector r a) where   Covector m + Covector n = Covector $ m + n-  replicate1p n (Covector m) = Covector $ replicate1p n m+  sinnum1p n (Covector m) = Covector $ sinnum1p n m  instance Coalgebra r m => Multiplicative (Covector r m) where   Covector f * Covector g = Covector $ \k -> f (\m -> g (comult k m))@@ -135,7 +135,7 @@  instance Monoidal s => Monoidal (Covector s a) where   zero = Covector zero-  replicate n (Covector m) = Covector (replicate n m)+  sinnum n (Covector m) = Covector (sinnum n m)  instance Abelian s => Abelian (Covector s a) 
Numeric/Exp.hs view
@@ -12,11 +12,11 @@ instance Additive r => Multiplicative (Exp r) where   Exp a * Exp b = Exp (a + b)   productWith1 f = Exp . sumWith1 (runExp . f)-  pow1p (Exp m) n = Exp (replicate1p n m)+  pow1p (Exp m) n = Exp (sinnum1p n m)  instance Monoidal r => Unital (Exp r) where   one = Exp zero-  pow (Exp m) n = Exp (replicate n m)+  pow (Exp m) n = Exp (sinnum n m)   productWith f = Exp . sumWith (runExp . f)  instance Group r => Division (Exp r) where
Numeric/Log.hs view
@@ -13,7 +13,7 @@ instance Multiplicative r => Additive (Log r) where   Log a + Log b = Log (a * b)   sumWith1 f = Log . productWith1 (runLog . f)-  replicate1p n (Log m) = Log (pow1p m n)+  sinnum1p n (Log m) = Log (pow1p m n)  instance Unital r => LeftModule Natural (Log r) where   n .* Log m = Log (pow m n)@@ -23,7 +23,7 @@  instance Unital r => Monoidal (Log r) where   zero = Log one-  replicate n (Log m) = Log (pow m n)+  sinnum n (Log m) = Log (pow m n)   sumWith f = Log . productWith (runLog . f)  instance Division r => LeftModule Integer (Log r) where
Numeric/Map.hs view
@@ -212,7 +212,7 @@  instance Additive r => Additive (Map r b a) where   Map m + Map n = Map $ m + n-  replicate1p n (Map m) = Map $ replicate1p n m+  sinnum1p n (Map m) = Map $ sinnum1p n m  instance Coalgebra r m => Multiplicative (Map r b m) where   f * g = Map $ \k b -> (f $# \a -> (g $# comult k a) b) b@@ -247,7 +247,7 @@  instance Monoidal s => Monoidal (Map s b a) where   zero = Map zero-  replicate n (Map m) = Map $ replicate n m+  sinnum n (Map m) = Map $ sinnum n m  instance Abelian s => Abelian (Map s b a) 
Numeric/Module/Representable.hs view
@@ -2,9 +2,9 @@ module Numeric.Module.Representable    (    -- * Representable Additive-    addRep, replicate1pRep+    addRep, sinnum1pRep   -- * Representable Monoidal-  , zeroRep, replicateRep+  , zeroRep, sinnumRep   -- * Representable Group   , negateRep, minusRep, subtractRep, timesRep   -- * Representable Multiplicative (via Algebra)@@ -35,17 +35,17 @@ addRep :: (Zip m, Additive r) => m r -> m r -> m r addRep = zipWith (+) --- | `Additive.replicate1p` default definition-replicate1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r-replicate1pRep = fmap . replicate1p+-- | `Additive.sinnum1p` default definition+sinnum1pRep :: (Whole n, Functor m, Additive r) => n -> m r -> m r+sinnum1pRep = fmap . sinnum1p  -- | `Monoidal.zero` default definition zeroRep :: (Applicative m, Monoidal r) => m r  zeroRep = pure zero --- | `Monoidal.replicate` default definition-replicateRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r-replicateRep = fmap . replicate+-- | `Monoidal.sinnum` default definition+sinnumRep :: (Whole n, Functor m, Monoidal r) => n -> m r -> m r+sinnumRep = fmap . sinnum  -- | `Group.negate` default definition negateRep :: (Functor m, Group r) => m r -> m r
− Numeric/Natural.hs
@@ -1,6 +0,0 @@-module Numeric.Natural -  ( Natural-  , Whole(toNatural)-  ) where--import Numeric.Natural.Internal
− Numeric/Natural/Internal.hs
@@ -1,96 +0,0 @@-module Numeric.Natural.Internal-  ( Natural(..)-  , Whole(..)-  ) where--import Data.Word-import Data.Bits-import Text.Read-import Data.Ix--newtype Natural = Natural { runNatural :: Integer } deriving (Eq,Ord,Ix)--instance Show Natural where-  showsPrec d (Natural n) = showsPrec d n--instance Read Natural where-  readPrec = fmap Natural $ step readPrec--instance Num Natural where-  Natural n + Natural m = Natural (n + m)-  Natural n * Natural m = Natural (n * m)-  Natural n - Natural m | result < 0 = error "Natural.(-): negative result"-                        | otherwise  = Natural result-	where result = n - m-  abs (Natural n) = Natural n-  signum (Natural n) = Natural (signum n)-  fromInteger n -    | n >= 0 = Natural n-    | otherwise = error "Natural.fromInteger: negative"--instance Bits Natural where-  Natural n .&. Natural m = Natural (n .&. m)-  Natural n .|. Natural m = Natural (n .|. m)-  xor (Natural n) (Natural m) = Natural (xor n m)-  complement _ = error "Bits.complement: Natural complement undefined"-  shift (Natural n) = Natural . shift n-  rotate (Natural n) = Natural . rotate n-  bit = Natural . bit-  setBit (Natural n) = Natural . setBit n-  clearBit (Natural n) = Natural . clearBit n-  complementBit (Natural n) = Natural . complementBit n-  testBit = testBit . runNatural -  bitSize = bitSize . runNatural-  isSigned _ = False-  shiftL (Natural n) = Natural . shiftL n-  shiftR (Natural n) = Natural . shiftR n-  rotateL (Natural n) = Natural . rotateL n-  rotateR (Natural n) = Natural . rotateR n--instance Real Natural where-  toRational (Natural a) = toRational a--instance Enum Natural where-  pred (Natural 0) = error "Natural.pred: 0"-  pred (Natural n) = Natural (pred n)-  succ (Natural n) = Natural (succ n)-  fromEnum (Natural n) = fromEnum n-  toEnum n | n < 0     = error "Natural.toEnum: negative"-           | otherwise = Natural (toEnum n)--instance Integral Natural where-  quot (Natural a) (Natural b) = Natural (quot a b)-  rem (Natural a) (Natural b) = Natural (rem a b)-  div (Natural a) (Natural b) = Natural (div a b)-  mod (Natural a) (Natural b) = Natural (mod a b)-  divMod (Natural a) (Natural b) = (Natural q, Natural r) where (q,r) = divMod a b-  quotRem (Natural a) (Natural b) = (Natural q, Natural r) where (q,r) = quotRem a b-  toInteger = runNatural--class Integral n => Whole n where-  toNatural :: n -> Natural-  unsafePred :: n -> n--instance Whole Word where-  toNatural = Natural . toInteger-  unsafePred n = n - 1--instance Whole Word8 where-  toNatural = Natural . toInteger-  unsafePred n = n - 1--instance Whole Word16 where-  toNatural = Natural . toInteger-  unsafePred n = n - 1--instance Whole Word32 where-  toNatural = Natural . toInteger-  unsafePred n = n - 1--instance Whole Word64 where-  toNatural = Natural . toInteger-  unsafePred n = n - 1--instance Whole Natural where-  toNatural = id-  unsafePred (Natural n) = Natural (n - 1)
Numeric/Rig/Class.hs view
@@ -17,7 +17,7 @@ -- | A Ring without (n)egation class (Semiring r, Unital r, Monoidal r) => Rig r where   fromNatural :: Natural -> r-  fromNatural n = replicate n one+  fromNatural n = sinnum n one  fromWhole :: (Whole n, Rig r) => n -> r fromWhole = fromNatural . toNatural
Numeric/Ring/Opposite.hs view
@@ -32,11 +32,11 @@   traverse1 f (Opposite r) = fmap Opposite (f r) instance Additive r => Additive (Opposite r) where   Opposite a + Opposite b = Opposite (a + b)-  replicate1p n (Opposite a) = Opposite (replicate1p n a)+  sinnum1p n (Opposite a) = Opposite (sinnum1p n a)   sumWith1 f = Opposite . sumWith1 (runOpposite . f) instance Monoidal r => Monoidal (Opposite r) where   zero = Opposite zero-  replicate n (Opposite a) = Opposite (replicate n a)+  sinnum n (Opposite a) = Opposite (sinnum n a)   sumWith f = Opposite . sumWith (runOpposite . f) instance Semiring r => LeftModule (Opposite r) (Opposite r) where   (.*) = (*)
Numeric/Ring/Rng.hs view
@@ -17,19 +17,19 @@  instance Abelian r => Additive (RngRing r) where   RngRing n a + RngRing m b = RngRing (n + m) (a + b)-  replicate1p n (RngRing m a) = RngRing ((1 + toInteger n) * m) (replicate1p n a)+  sinnum1p n (RngRing m a) = RngRing ((1 + toInteger n) * m) (sinnum1p n a)  instance Abelian r => Abelian (RngRing r)  instance (Abelian r, Monoidal r) => LeftModule Natural (RngRing r) where-  n .* RngRing m a = RngRing (toInteger n * m) (replicate n a)+  n .* RngRing m a = RngRing (toInteger n * m) (sinnum n a)  instance (Abelian r, Monoidal r) => RightModule Natural (RngRing r) where-  RngRing m a *. n = RngRing (toInteger n * m) (replicate n a)+  RngRing m a *. n = RngRing (toInteger n * m) (sinnum n a)  instance (Abelian r, Monoidal r) => Monoidal (RngRing r) where   zero = RngRing 0 zero-  replicate n (RngRing m a) = RngRing (toInteger n * m) (replicate n a)+  sinnum n (RngRing m a) = RngRing (toInteger n * m) (sinnum n a)  instance (Abelian r, Group r) => LeftModule Integer (RngRing r) where   n .* RngRing m a = RngRing (toInteger n * m) (times n a)
Numeric/Rng/Zero.hs view
@@ -27,7 +27,7 @@ instance Monoidal r => Monoidal (ZeroRng r) where   zero = ZeroRng zero   sumWith f = ZeroRng . sumWith (runZeroRng . f)-  replicate n (ZeroRng a) = ZeroRng (replicate n a)+  sinnum n (ZeroRng a) = ZeroRng (sinnum n a)    instance Group r => Group (ZeroRng r) where   ZeroRng a - ZeroRng b = ZeroRng (a - b)@@ -46,9 +46,9 @@ instance Monoidal r => Commutative (ZeroRng r) instance (Group r, Abelian r) => Rng (ZeroRng r) instance Monoidal r => LeftModule Natural (ZeroRng r) where-  (.*) = replicate+  (.*) = sinnum instance Monoidal r => RightModule Natural (ZeroRng r) where-  m *. n = replicate n m+  m *. n = sinnum n m instance Group r => LeftModule Integer (ZeroRng r) where   (.*) = times instance Group r => RightModule Integer (ZeroRng r) where
algebra.cabal view
@@ -1,6 +1,6 @@ name:          algebra category:      Math, Algebra-version:       0.9.0.3+version:       2.0 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -33,20 +33,20 @@     GeneralizedNewtypeDeriving    build-depends: -    array >= 0.3.0.2 && < 0.4,-    base >= 4 && < 4.4,-    distributive >= 0.2 && < 0.3,-    transformers >= 0.2.0 && < 0.3,-    tagged >= 0.2.2 && < 0.3,-    categories >= 0.58.0 && < 0.59,-    containers >= 0.3.0.0 && < 0.5,-    keys >= 1.8 && < 1.9,-    mtl >= 2.0 && < 2.1,-    semigroups >= 0.6 && < 0.7,-    semigroupoids >= 1.2.2 && < 1.3,-    representable-functors >= 2.0 && < 2.1,-    representable-tries >= 2.0 && < 2.1,-    void >= 0.5.4 && < 0.6+    array                   >= 0.3.0.2 && < 0.4,+    base                    >= 4       && < 5,+    distributive            >= 0.2     && < 0.3,+    transformers            >= 0.2.0   && < 0.3,+    tagged                  >= 0.2.2.3 && < 0.3,+    categories              >= 0.58.0  && < 0.59,+    containers              >= 0.3     && < 0.5,+    keys                    >= 2.0     && < 2.1,+    mtl                     >= 2.0     && < 2.1,+    semigroups              >= 0.7.1   && < 0.8,+    semigroupoids           >= 1.2.4   && < 1.3,+    representable-functors  >= 2.0     && < 2.1,+    representable-tries     >= 2.0     && < 2.1,+    void                    >= 0.5.4.3 && < 0.6    exposed-modules:     Numeric.Additive.Class@@ -91,8 +91,6 @@     Numeric.Map     Numeric.Module.Class     Numeric.Module.Representable-    Numeric.Natural-    Numeric.Natural.Internal     Numeric.Order.Additive     Numeric.Order.Class     Numeric.Order.LocallyFinite