packages feed

gasp 1.0.1.0 → 1.1.0.0

raw patch · 2 files changed

+16/−6 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Algebra.Classes: div, mod :: EuclideanDomain a => a -> a -> a
- Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.AbelianAdditive v) => Algebra.Classes.AbelianAdditive (Data.Map.Base.Map k v)
- Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.Additive v) => Algebra.Classes.Additive (Data.Map.Base.Map k v)
- Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.DecidableZero v) => Algebra.Classes.DecidableZero (Data.Map.Base.Map k v)
- Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.Group v) => Algebra.Classes.Group (Data.Map.Base.Map k v)
- Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.Ring v) => Algebra.Classes.Module v (Data.Map.Base.Map k v)
- Algebra.Classes: quot, rem :: Integral a => a -> a -> a
+ Algebra.Classes: div :: EuclideanDomain a => a -> a -> a
+ Algebra.Classes: infixl 6 -
+ Algebra.Classes: infixl 7 `div`
+ Algebra.Classes: infixr 7 *^
+ Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.AbelianAdditive v) => Algebra.Classes.AbelianAdditive (Data.Map.Internal.Map k v)
+ Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.Additive v) => Algebra.Classes.Additive (Data.Map.Internal.Map k v)
+ Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.DecidableZero v) => Algebra.Classes.DecidableZero (Data.Map.Internal.Map k v)
+ Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.Group v) => Algebra.Classes.Group (Data.Map.Internal.Map k v)
+ Algebra.Classes: instance (GHC.Classes.Ord k, Algebra.Classes.Ring v) => Algebra.Classes.Module v (Data.Map.Internal.Map k v)
+ Algebra.Classes: instance Algebra.Classes.Additive a => GHC.Base.Semigroup (Algebra.Classes.Sum a)
+ Algebra.Classes: instance Algebra.Classes.Multiplicative a => GHC.Base.Semigroup (Algebra.Classes.Product a)
+ Algebra.Classes: mod :: EuclideanDomain a => a -> a -> a
+ Algebra.Classes: quot :: Integral a => a -> a -> a
+ Algebra.Classes: rem :: Integral a => a -> a -> a
- Algebra.Classes: class Additive a where times 0 _ = zero times n x = if r == 0 then y + y else x + y + y where (m, r) = n `divMod` 2 y = times m x
+ Algebra.Classes: class Additive a
- Algebra.Classes: class Multiplicative a => Division a where recip x = one / x x / y = x * recip y
+ Algebra.Classes: class Multiplicative a => Division a
- Algebra.Classes: class Ring a => EuclideanDomain a where stdAssociate x = x `div` stdUnit x stdUnit x = snd (normalize x) normalize x = (stdAssociate x, stdUnit x) n `divMod` d = (n `div` d, n `mod` d) n `div` d = q where (q, _) = divMod n d n `mod` d = r where (_, r) = divMod n d
+ Algebra.Classes: class Ring a => EuclideanDomain a
- Algebra.Classes: class (Ring a, Division a) => Field a where fromRational x = fromInteger (numerator x) / fromInteger (denominator x)
+ Algebra.Classes: class (Ring a, Division a) => Field a
- Algebra.Classes: class Additive a => Group a where a - b = a + negate b negate b = zero - b mult n x = if n < 0 then negate (times (negate n) x) else times n x
+ Algebra.Classes: class Additive a => Group a
- Algebra.Classes: class (Real a, Enum a, EuclideanDomain a) => Integral a where n `quot` d = q where (q, _) = quotRem n d n `rem` d = r where (_, r) = quotRem n d quotRem n d = if signum r == - signum d then (q + one, r - d) else qr where qr@(q, r) = divMod n d
+ Algebra.Classes: class (Real a, Enum a, EuclideanDomain a) => Integral a
- Algebra.Classes: class Multiplicative a where (^) _ 0 = one (^) x n = if r == 0 then y * y else x * y * y where (m, r) = n `divMod` 2 y = (^) y m
+ Algebra.Classes: class Multiplicative a
- Algebra.Classes: class (SemiRing a, Group a) => Ring a where fromInteger n = mult n one
+ Algebra.Classes: class (SemiRing a, Group a) => Ring a
- Algebra.Classes: gcd :: (Integral a) => a -> a -> a
+ Algebra.Classes: gcd :: Integral a => a -> a -> a

Files

Algebra/Classes.hs view
@@ -2,7 +2,7 @@ module Algebra.Classes where  import Prelude as Algebra.Classes (Int,Integer,Float,Double, Foldable (..), (==), Monoid(..), Ord(..)-                                  ,Real(..), Enum(..), snd, Rational, Functor(..), Eq(..), Bool(..))+                                  ,Real(..), Enum(..), snd, Rational, Functor(..), Eq(..), Bool(..), Semigroup(..)) import qualified Prelude import qualified Data.Ratio import qualified Data.Map.Strict as M@@ -29,13 +29,19 @@  instance Additive a => Monoid (Sum a) where   mempty = Sum zero-  mappend (Sum x) (Sum y) = Sum (x + y)+  mappend = (<>) +instance Additive a => Semigroup (Sum a) where+  (<>) (Sum x) (Sum y) = Sum (x + y)+ newtype Product a = Product {fromProduct :: a} +instance Multiplicative a => Semigroup (Product a) where+  (<>) (Product x) (Product y) = Product (x * y)+ instance Multiplicative a => Monoid (Product a) where   mempty = Product one-  mappend (Product x) (Product y) = Product (x * y)+  mappend = (<>)  newtype Exponential a = Exponential {fromExponential :: a} 
gasp.cabal view
@@ -1,16 +1,20 @@ name:           gasp-version:        1.0.1.0+version:        1.1.0.0 category:       Algebra synopsis:       A framework of algebraic classes description:-  Soon to appear.+  One algebraic classes framework to rule them all. license:        BSD3 license-file:   LICENSE author:         Jean-Philippe Bernardy maintainer:     jeanphilippe.bernardy@gmail.com Cabal-Version:  >= 1.12-tested-with:    GHC==7.10.3+tested-with:    GHC==8.4.1 build-type:     Simple+source-repository head+  type: git+  location: https://github.com/jyp/gasp+  library   default-language: Haskell2010