rings-0.1.3: Ring-like objects.

Safe HaskellSafe
LanguageHaskell2010

Data.Semiring

Contents

Synopsis

Types

type (-) g f a = f (g a) infixl 6 Source #

Hyphenation operator.

type (**) f g = Compose f g infixr 2 Source #

Tensor product.

type (++) f g = Product f g infixr 1 Source #

Direct sum.

Presemirings

class PresemiringLaw a => Presemiring a Source #

Right pre-semirings. and (non-unital and unital) right semirings.

A right pre-semiring (sometimes referred to as a bisemigroup) is a type R endowed with two associative binary (i.e. semigroup) operations: + and *, along with a right-distributivity property connecting them:

Distributivity

(a + b) * c = (a * c) + (b * c)

Note that addition and multiplication needn't be commutative.

See the properties module for a detailed specification of the laws.

Instances
Presemiring Bool Source # 
Instance details

Defined in Data.Semiring

Presemiring Double Source # 
Instance details

Defined in Data.Semiring

Presemiring Float Source # 
Instance details

Defined in Data.Semiring

Presemiring Int Source # 
Instance details

Defined in Data.Semiring

Presemiring Int8 Source # 
Instance details

Defined in Data.Semiring

Presemiring Int16 Source # 
Instance details

Defined in Data.Semiring

Presemiring Int32 Source # 
Instance details

Defined in Data.Semiring

Presemiring Int64 Source # 
Instance details

Defined in Data.Semiring

Presemiring Integer Source # 
Instance details

Defined in Data.Semiring

Presemiring Natural Source # 
Instance details

Defined in Data.Semiring

Presemiring Word Source # 
Instance details

Defined in Data.Semiring

Presemiring Word8 Source # 
Instance details

Defined in Data.Semiring

Presemiring Word16 Source # 
Instance details

Defined in Data.Semiring

Presemiring Word32 Source # 
Instance details

Defined in Data.Semiring

Presemiring Word64 Source # 
Instance details

Defined in Data.Semiring

Presemiring () Source # 
Instance details

Defined in Data.Semiring

Presemiring Uni Source # 
Instance details

Defined in Data.Semiring

Presemiring Deci Source # 
Instance details

Defined in Data.Semiring

Presemiring Centi Source # 
Instance details

Defined in Data.Semiring

Presemiring Milli Source # 
Instance details

Defined in Data.Semiring

Presemiring Micro Source # 
Instance details

Defined in Data.Semiring

Presemiring Nano Source # 
Instance details

Defined in Data.Semiring

Presemiring Pico Source # 
Instance details

Defined in Data.Semiring

Presemiring CFloat Source # 
Instance details

Defined in Data.Semiring

Presemiring CDouble Source # 
Instance details

Defined in Data.Semiring

Presemiring IntSet Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Presemiring [a] Source # 
Instance details

Defined in Data.Semiring

Presemiring a => Presemiring (Maybe a) Source # 
Instance details

Defined in Data.Semiring

Presemiring (Ratio Integer) Source # 
Instance details

Defined in Data.Semiring

Presemiring (Ratio Natural) Source # 
Instance details

Defined in Data.Semiring

Ring a => Presemiring (Complex a) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Presemiring (NonEmpty a) Source # 
Instance details

Defined in Data.Semiring

Presemiring a => Presemiring (IntMap a) Source # 
Instance details

Defined in Data.Semiring

Ord a => Presemiring (Set a) Source # 
Instance details

Defined in Data.Semiring

Semiring a => Presemiring (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Presemiring (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Presemiring (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Presemiring (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Presemiring a => Presemiring (e -> a) Source # 
Instance details

Defined in Data.Semiring

(Presemiring a, Presemiring b) => Presemiring (Either a b) Source # 
Instance details

Defined in Data.Semiring

(Ord k, Presemiring a) => Presemiring (Map k a) Source # 
Instance details

Defined in Data.Semiring

Presemiring a => Presemiring (End a b) Source # 
Instance details

Defined in Data.Semimodule.Free

(+) :: (Additive - Semigroup) a => a -> a -> a infixl 6 Source #

Additive semigroup operation on a semiring.

>>> Dual [2] + Dual [3] :: Dual [Int]
Dual {getDual = [3,2]}

(*) :: (Multiplicative - Semigroup) a => a -> a -> a infixl 7 Source #

Multiplicative semigroup operation on a semiring.

>>> Dual [2] * Dual [3] :: Dual [Int]
Dual {getDual = [5]}

Presemiring folds

sum1 :: (Additive - Semigroup) a => Foldable1 f => f a -> a Source #

Evaluate a non-empty presemiring sum.

sumWith1 :: (Additive - Semigroup) a => Foldable1 t => (b -> a) -> t b -> a Source #

Evaluate a non-empty presemiring sum using a given presemiring.

>>> evalWith1 Max $ (1 :| [2..5 :: Int]) :| [1 :| [2..5 :: Int]]
| Fold over a non-empty collection using the additive operation of an arbitrary semiring.
>>> sumWith1 First $ (1 :| [2..5 :: Int]) * (1 :| [2..5 :: Int])
First {getFirst = 1}
>>> sumWith1 First $ Nothing :| [Just (5 :: Int), Just 6,  Nothing]
First {getFirst = Nothing}
>>> sumWith1 Just $ 1 :| [2..5 :: Int]
Just 15

product1 :: (Multiplicative - Semigroup) a => Foldable1 f => f a -> a Source #

Evaluate a non-empty presemiring product.

productWith1 :: (Multiplicative - Semigroup) a => Foldable1 t => (b -> a) -> t b -> a Source #

Evaluate a non-empty presemiring product using a given presemiring.

As the collection is non-empty this does not require a distinct multiplicative unit:

>>> productWith1 Just $ 1 :| [2..5 :: Int]
Just 120
>>> productWith1 First $ 1 :| [2..(5 :: Int)]
First {getFirst = 15}
>>> productWith1 First $ Nothing :| [Just (5 :: Int), Just 6,  Nothing]
First {getFirst = Just 11}

xmult1 :: Presemiring a => Foldable1 f => Apply f => f a -> f a -> a Source #

Cross-multiply two non-empty collections.

>>> xmult1 (Right 2 :| [Left "oops"]) (Right 2 :| [Right 3]) :: Either [Char] Int
Right 4

eval1 :: Presemiring a => Functor f => Foldable1 f => Foldable1 g => f (g a) -> a Source #

Evaluate a presemiring expression.

evalWith1 :: Presemiring r => Functor f => Functor g => Foldable1 f => Foldable1 g => (a -> r) -> f (g a) -> r Source #

Evaluate a presemiring expression using a given presemiring.

>>> evalWith1 (Max . Down) $ (1 :| [2..5 :: Int]) :| [-5 :| [2..5 :: Int]]
Max {getMax = Down 9}
>>> evalWith1 Max $ (1 :| [2..5 :: Int]) :| [-5 :| [2..5 :: Int]]
Max {getMax = 15}

Semirings

class (Presemiring a, SemiringLaw a) => Semiring a Source #

Right semirings.

A right semiring is a pre-semiring with two distinct neutral elements, zero and one, such that zero is right-neutral wrt addition, one is right-neutral wrt multiplication, and zero is right-annihilative wrt multiplication.

Neutrality

zero + r = r
one * r = r

Absorbtion

zero * a = zero
Instances
Semiring Bool Source # 
Instance details

Defined in Data.Semiring

Semiring Double Source # 
Instance details

Defined in Data.Semiring

Semiring Float Source # 
Instance details

Defined in Data.Semiring

Semiring Int Source # 
Instance details

Defined in Data.Semiring

Semiring Int8 Source # 
Instance details

Defined in Data.Semiring

Semiring Int16 Source # 
Instance details

Defined in Data.Semiring

Semiring Int32 Source # 
Instance details

Defined in Data.Semiring

Semiring Int64 Source # 
Instance details

Defined in Data.Semiring

Semiring Integer Source # 
Instance details

Defined in Data.Semiring

Semiring Natural Source # 
Instance details

Defined in Data.Semiring

Semiring Word Source # 
Instance details

Defined in Data.Semiring

Semiring Word8 Source # 
Instance details

Defined in Data.Semiring

Semiring Word16 Source # 
Instance details

Defined in Data.Semiring

Semiring Word32 Source # 
Instance details

Defined in Data.Semiring

Semiring Word64 Source # 
Instance details

Defined in Data.Semiring

Semiring () Source # 
Instance details

Defined in Data.Semiring

Semiring Uni Source # 
Instance details

Defined in Data.Semiring

Semiring Deci Source # 
Instance details

Defined in Data.Semiring

Semiring Centi Source # 
Instance details

Defined in Data.Semiring

Semiring Milli Source # 
Instance details

Defined in Data.Semiring

Semiring Micro Source # 
Instance details

Defined in Data.Semiring

Semiring Nano Source # 
Instance details

Defined in Data.Semiring

Semiring Pico Source # 
Instance details

Defined in Data.Semiring

Semiring CFloat Source # 
Instance details

Defined in Data.Semiring

Semiring CDouble Source # 
Instance details

Defined in Data.Semiring

(Additive - Monoid) a => Semiring [a] Source # 
Instance details

Defined in Data.Semiring

Semiring a => Semiring (Maybe a) Source # 
Instance details

Defined in Data.Semiring

Semiring (Ratio Integer) Source # 
Instance details

Defined in Data.Semiring

Semiring (Ratio Natural) Source # 
Instance details

Defined in Data.Semiring

Semiring a => Semiring (IntMap a) Source # 
Instance details

Defined in Data.Semiring

Semiring a => Semiring (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semiring (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semiring (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semiring (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semiring (e -> a) Source # 
Instance details

Defined in Data.Semiring

(Ord k, (Multiplicative - Monoid) k, Semiring a) => Semiring (Map k a) Source # 
Instance details

Defined in Data.Semiring

Semiring a => Semiring (End a b) Source # 
Instance details

Defined in Data.Semimodule.Free

zero :: (Additive - Monoid) a => a Source #

Additive unit of a semiring.

one :: (Multiplicative - Monoid) a => a Source #

Multiplicative unit of a semiring.

two :: Semiring a => a Source #

(^) :: Semiring a => a -> Natural -> a infixr 8 Source #

Evaluate a natural-numbered power of a semiring element.

 one = a ^ 0
>>> 8 ^ 0 :: Int
1

Semiring folds

sum :: (Additive - Monoid) a => Foldable f => f a -> a Source #

Evaluate a semiring sum.

>>> sum [1..5 :: Int]
15

sumWith :: (Additive - Monoid) a => Foldable f => (b -> a) -> f b -> a Source #

Evaluate a semiring sum using a given semiring.

product :: (Multiplicative - Monoid) a => Foldable f => f a -> a Source #

Evaluate a semiring product.

>>> product [1..5 :: Int]
120

productWith :: (Multiplicative - Monoid) a => Foldable f => (b -> a) -> f b -> a Source #

Evaluate a semiring product using a given semiring.

product f = foldr' ((*) . f) one
>>> productWith Just [1..5 :: Int]
Just 120

xmult :: Semiring a => Foldable f => Applicative f => f a -> f a -> a Source #

Cross-multiply two collections.

>>> xmult (V3 1 2 3) (V3 1 2 3)
14
>>> xmult [1,2,3 :: Int] [1,2,3]
36
>>> xmult [1,2,3 :: Int] []
0

eval :: Semiring a => Functor f => Foldable f => Foldable g => f (g a) -> a Source #

Evaluate a semiring expression.

 (a11 * .. * a1m) + (a21 * .. * a2n) + ...
>>> eval [[1, 2], [3, 4 :: Int]] -- 1 * 2 + 3 * 4
14
>>> eval $ sequence [[1, 2], [3, 4 :: Int]] -- 1 + 2 * 3 + 4
21

evalWith :: Semiring r => Functor f => Functor g => Foldable f => Foldable g => (a -> r) -> f (g a) -> r Source #

Evaluate a semiring expression using a given semiring.

>>> evalWith Max [[1..4 :: Int], [0..2 :: Int]]
Max {getMax = 24}

Rings

class (Semiring a, RingLaw a) => Ring a Source #

Rings.

A ring R is a commutative group with a second monoidal operation * that distributes over +.

The basic properties of a ring follow immediately from the axioms:

 r * zero = zero = zero * r
 negate one * r = negate r

Furthermore, the binomial formula holds for any commuting pair of elements (that is, any a and b such that a * b = b * a).

If zero = one in a ring R, then R has only one element, and is called the zero ring. Otherwise the additive identity, the additive inverse of each element, and the multiplicative identity are unique.

See https://en.wikipedia.org/wiki/Ring_(mathematics).

If the ring is ordered (i.e. has an Ord instance), then the following additional properties must hold:

 a <= b ⇒ a + c <= b + c
 zero <= a && zero <= b ⇒ zero <= a * b

See the properties module for a detailed specification of the laws.

Instances
Ring Double Source # 
Instance details

Defined in Data.Semiring

Ring Float Source # 
Instance details

Defined in Data.Semiring

Ring Int Source # 
Instance details

Defined in Data.Semiring

Ring Int8 Source # 
Instance details

Defined in Data.Semiring

Ring Int16 Source # 
Instance details

Defined in Data.Semiring

Ring Int32 Source # 
Instance details

Defined in Data.Semiring

Ring Int64 Source # 
Instance details

Defined in Data.Semiring

Ring Integer Source # 
Instance details

Defined in Data.Semiring

Ring () Source # 
Instance details

Defined in Data.Semiring

Ring Uni Source # 
Instance details

Defined in Data.Semiring

Ring Deci Source # 
Instance details

Defined in Data.Semiring

Ring Centi Source # 
Instance details

Defined in Data.Semiring

Ring Milli Source # 
Instance details

Defined in Data.Semiring

Ring Micro Source # 
Instance details

Defined in Data.Semiring

Ring Nano Source # 
Instance details

Defined in Data.Semiring

Ring Pico Source # 
Instance details

Defined in Data.Semiring

Ring CFloat Source # 
Instance details

Defined in Data.Semiring

Ring CDouble Source # 
Instance details

Defined in Data.Semiring

Ring (Ratio Integer) Source # 
Instance details

Defined in Data.Semiring

Ring a => Ring (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Ring a => Ring (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Ring a => Ring (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Ring a => Ring (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Finite

Ring a => Ring (e -> a) Source # 
Instance details

Defined in Data.Semiring

Ring a => Ring (End a b) Source # 
Instance details

Defined in Data.Semimodule.Free

(-) :: (Additive - Group) a => a -> a -> a infixl 6 Source #

Subtract two elements.

a - b = subtract b a

subtract :: (Additive - Group) a => a -> a -> a Source #

Subtract two elements.

negate :: (Additive - Group) a => a -> a Source #

Reverse the sign of an element.

abs :: (Additive - Group) a => Ord a => a -> a Source #

Absolute value of an element.

 abs r = r * (signum r)

signum :: Ring a => Ord a => a -> a Source #

Extract the sign of an element.

signum satisfies a trichotomy law:

 signum r = negate r || zero || r

This follows from the fact that ordered rings are abelian, linearly ordered groups with respect to addition.

See https://en.wikipedia.org/wiki/Linearly_ordered_group.

Additive

newtype Additive a Source #

A commutative Semigroup under +.

Constructors

Additive 

Fields

Instances
Functor Additive Source # 
Instance details

Defined in Data.Semiring

Methods

fmap :: (a -> b) -> Additive a -> Additive b #

(<$) :: a -> Additive b -> Additive a #

Applicative Additive Source # 
Instance details

Defined in Data.Semiring

Methods

pure :: a -> Additive a #

(<*>) :: Additive (a -> b) -> Additive a -> Additive b #

liftA2 :: (a -> b -> c) -> Additive a -> Additive b -> Additive c #

(*>) :: Additive a -> Additive b -> Additive b #

(<*) :: Additive a -> Additive b -> Additive a #

Distributive Additive Source # 
Instance details

Defined in Data.Semiring

Methods

distribute :: Functor f => f (Additive a) -> Additive (f a) #

collect :: Functor f => (a -> Additive b) -> f a -> Additive (f b) #

distributeM :: Monad m => m (Additive a) -> Additive (m a) #

collectM :: Monad m => (a -> Additive b) -> m a -> Additive (m b) #

Representable Additive Source # 
Instance details

Defined in Data.Semiring

Associated Types

type Rep Additive :: Type #

Methods

tabulate :: (Rep Additive -> a) -> Additive a #

index :: Additive a -> Rep Additive -> a #

Eq a => Eq (Additive a) Source # 
Instance details

Defined in Data.Semiring

Methods

(==) :: Additive a -> Additive a -> Bool #

(/=) :: Additive a -> Additive a -> Bool #

Ord a => Ord (Additive a) Source # 
Instance details

Defined in Data.Semiring

Methods

compare :: Additive a -> Additive a -> Ordering #

(<) :: Additive a -> Additive a -> Bool #

(<=) :: Additive a -> Additive a -> Bool #

(>) :: Additive a -> Additive a -> Bool #

(>=) :: Additive a -> Additive a -> Bool #

max :: Additive a -> Additive a -> Additive a #

min :: Additive a -> Additive a -> Additive a #

Show a => Show (Additive a) Source # 
Instance details

Defined in Data.Semiring

Methods

showsPrec :: Int -> Additive a -> ShowS #

show :: Additive a -> String #

showList :: [Additive a] -> ShowS #

Generic (Additive a) Source # 
Instance details

Defined in Data.Semiring

Associated Types

type Rep (Additive a) :: Type -> Type #

Methods

from :: Additive a -> Rep (Additive a) x #

to :: Rep (Additive a) x -> Additive a #

Semigroup (Additive Bool) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) b => Semigroup (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

sconcat :: NonEmpty (Additive (a -> b)) -> Additive (a -> b) #

stimes :: Integral b0 => b0 -> Additive (a -> b) -> Additive (a -> b) #

Semigroup (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Natural) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive [a]) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive [a] -> Additive [a] -> Additive [a] #

sconcat :: NonEmpty (Additive [a]) -> Additive [a] #

stimes :: Integral b => b -> Additive [a] -> Additive [a] #

(Additive - Semigroup) a => Semigroup (Additive (Maybe a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Maybe a) -> Additive (Maybe a) -> Additive (Maybe a) #

sconcat :: NonEmpty (Additive (Maybe a)) -> Additive (Maybe a) #

stimes :: Integral b => b -> Additive (Maybe a) -> Additive (Maybe a) #

((Additive - Semigroup) a, (Multiplicative - Semigroup) a) => Semigroup (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

sconcat :: NonEmpty (Additive (Ratio a)) -> Additive (Ratio a) #

stimes :: Integral b => b -> Additive (Ratio a) -> Additive (Ratio a) #

Semigroup (Additive Word) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Word8) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Word16) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Word32) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Word64) Source # 
Instance details

Defined in Data.Semiring

((Additive - Semigroup) a, (Additive - Semigroup) b) => Semigroup (Additive (Either a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Either a b) -> Additive (Either a b) -> Additive (Either a b) #

sconcat :: NonEmpty (Additive (Either a b)) -> Additive (Either a b) #

stimes :: Integral b0 => b0 -> Additive (Either a b) -> Additive (Either a b) #

Semigroup (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive () -> Additive () -> Additive () #

sconcat :: NonEmpty (Additive ()) -> Additive () #

stimes :: Integral b => b -> Additive () -> Additive () #

((Additive - Semigroup) a, (Additive - Semigroup) b) => Semigroup (Additive (a, b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (a, b) -> Additive (a, b) -> Additive (a, b) #

sconcat :: NonEmpty (Additive (a, b)) -> Additive (a, b) #

stimes :: Integral b0 => b0 -> Additive (a, b) -> Additive (a, b) #

((Additive - Semigroup) a, (Additive - Semigroup) b, (Additive - Semigroup) c) => Semigroup (Additive (a, b, c)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (a, b, c) -> Additive (a, b, c) -> Additive (a, b, c) #

sconcat :: NonEmpty (Additive (a, b, c)) -> Additive (a, b, c) #

stimes :: Integral b0 => b0 -> Additive (a, b, c) -> Additive (a, b, c) #

(Additive - Semigroup) a => Semigroup (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

sconcat :: NonEmpty (Additive (Op a b)) -> Additive (Op a b) #

stimes :: Integral b0 => b0 -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Semigroup) a => Semigroup (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Semigroup (Additive (Down a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Down a) -> Additive (Down a) -> Additive (Down a) #

sconcat :: NonEmpty (Additive (Down a)) -> Additive (Down a) #

stimes :: Integral b => b -> Additive (Down a) -> Additive (Down a) #

Semigroup (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive (NonEmpty a)) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Semigroup (Additive (IntMap a)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Additive IntSet) Source # 
Instance details

Defined in Data.Semiring

(Ord k, (Additive - Semigroup) a) => Semigroup (Additive (Map k a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Map k a) -> Additive (Map k a) -> Additive (Map k a) #

sconcat :: NonEmpty (Additive (Map k a)) -> Additive (Map k a) #

stimes :: Integral b => b -> Additive (Map k a) -> Additive (Map k a) #

Ord a => Semigroup (Additive (Set a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive (Set a) -> Additive (Set a) -> Additive (Set a) #

sconcat :: NonEmpty (Additive (Set a)) -> Additive (Set a) #

stimes :: Integral b => b -> Additive (Set a) -> Additive (Set a) #

((Additive - Semigroup) a, Free f, Free g) => Semigroup (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

sconcat :: NonEmpty (Additive ((f ++ g) a)) -> Additive ((f ++ g) a) #

stimes :: Integral b => b -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Semigroup) a, Free f, Free g) => Semigroup (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

sconcat :: NonEmpty (Additive ((f ** g) a)) -> Additive ((f ** g) a) #

stimes :: Integral b => b -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Semigroup) a => Semigroup (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<>) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

sconcat :: NonEmpty (Additive (Lin a b c)) -> Additive (Lin a b c) #

stimes :: Integral b0 => b0 -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Semigroup) a => Semigroup (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<>) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

sconcat :: NonEmpty (Additive (Cov a b)) -> Additive (Cov a b) #

stimes :: Integral b0 => b0 -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Semigroup) a => Semigroup (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<>) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

sconcat :: NonEmpty (Additive (Vec a b)) -> Additive (Vec a b) #

stimes :: Integral b0 => b0 -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Semigroup) a => Semigroup (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<>) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

sconcat :: NonEmpty (Additive (V4 a)) -> Additive (V4 a) #

stimes :: Integral b => b -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Semigroup) a => Semigroup (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<>) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

sconcat :: NonEmpty (Additive (V3 a)) -> Additive (V3 a) #

stimes :: Integral b => b -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Semigroup) a => Semigroup (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<>) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

sconcat :: NonEmpty (Additive (V2 a)) -> Additive (V2 a) #

stimes :: Integral b => b -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Semigroup) a => Semigroup (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<>) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

sconcat :: NonEmpty (Additive (V1 a)) -> Additive (V1 a) #

stimes :: Integral b => b -> Additive (V1 a) -> Additive (V1 a) #

Monoid (Additive Bool) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Monoid) b => Monoid (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (a -> b) #

mappend :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

mconcat :: [Additive (a -> b)] -> Additive (a -> b) #

Monoid (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Natural) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive [a]) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive [a] #

mappend :: Additive [a] -> Additive [a] -> Additive [a] #

mconcat :: [Additive [a]] -> Additive [a] #

(Additive - Semigroup) a => Monoid (Additive (Maybe a)) Source # 
Instance details

Defined in Data.Semiring

((Additive - Monoid) a, (Multiplicative - Monoid) a) => Monoid (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Word) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Word8) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Word16) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Word32) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Word64) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive () #

mappend :: Additive () -> Additive () -> Additive () #

mconcat :: [Additive ()] -> Additive () #

((Additive - Monoid) a, (Additive - Monoid) b) => Monoid (Additive (a, b)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (a, b) #

mappend :: Additive (a, b) -> Additive (a, b) -> Additive (a, b) #

mconcat :: [Additive (a, b)] -> Additive (a, b) #

((Additive - Monoid) a, (Additive - Monoid) b, (Additive - Monoid) c) => Monoid (Additive (a, b, c)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (a, b, c) #

mappend :: Additive (a, b, c) -> Additive (a, b, c) -> Additive (a, b, c) #

mconcat :: [Additive (a, b, c)] -> Additive (a, b, c) #

(Additive - Monoid) a => Monoid (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (Op a b) #

mappend :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

mconcat :: [Additive (Op a b)] -> Additive (Op a b) #

(Additive - Monoid) a => Monoid (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

(Additive - Monoid) a => Monoid (Additive (Down a)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (Down a) #

mappend :: Additive (Down a) -> Additive (Down a) -> Additive (Down a) #

mconcat :: [Additive (Down a)] -> Additive (Down a) #

Monoid (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Monoid (Additive (IntMap a)) Source # 
Instance details

Defined in Data.Semiring

Monoid (Additive IntSet) Source # 
Instance details

Defined in Data.Semiring

(Ord k, (Additive - Semigroup) a) => Monoid (Additive (Map k a)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (Map k a) #

mappend :: Additive (Map k a) -> Additive (Map k a) -> Additive (Map k a) #

mconcat :: [Additive (Map k a)] -> Additive (Map k a) #

Ord a => Monoid (Additive (Set a)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive (Set a) #

mappend :: Additive (Set a) -> Additive (Set a) -> Additive (Set a) #

mconcat :: [Additive (Set a)] -> Additive (Set a) #

((Additive - Monoid) a, Free f, Free g) => Monoid (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive ((f ++ g) a) #

mappend :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

mconcat :: [Additive ((f ++ g) a)] -> Additive ((f ++ g) a) #

((Additive - Monoid) a, Free f, Free g) => Monoid (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Additive ((f ** g) a) #

mappend :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

mconcat :: [Additive ((f ** g) a)] -> Additive ((f ** g) a) #

(Additive - Monoid) a => Monoid (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

mempty :: Additive (Lin a b c) #

mappend :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

mconcat :: [Additive (Lin a b c)] -> Additive (Lin a b c) #

(Additive - Monoid) a => Monoid (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

mempty :: Additive (Cov a b) #

mappend :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

mconcat :: [Additive (Cov a b)] -> Additive (Cov a b) #

(Additive - Monoid) a => Monoid (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

mempty :: Additive (Vec a b) #

mappend :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

mconcat :: [Additive (Vec a b)] -> Additive (Vec a b) #

(Additive - Monoid) a => Monoid (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

mempty :: Additive (V4 a) #

mappend :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

mconcat :: [Additive (V4 a)] -> Additive (V4 a) #

(Additive - Monoid) a => Monoid (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

mempty :: Additive (V3 a) #

mappend :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

mconcat :: [Additive (V3 a)] -> Additive (V3 a) #

(Additive - Monoid) a => Monoid (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

mempty :: Additive (V2 a) #

mappend :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

mconcat :: [Additive (V2 a)] -> Additive (V2 a) #

(Additive - Monoid) a => Monoid (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

mempty :: Additive (V1 a) #

mappend :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

mconcat :: [Additive (V1 a)] -> Additive (V1 a) #

Group (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Group (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive (a -> b) -> Additive (a -> b) #

greplicate :: Integer -> Additive (a -> b) -> Additive (a -> b) #

Group (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Group (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Group (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive () -> Additive () #

greplicate :: Integer -> Additive () -> Additive () #

(Additive - Group) a => Group (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive (Op a b) -> Additive (Op a b) #

greplicate :: Integer -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Group (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Group (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Group (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Group (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

greplicate :: Integer -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Group (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive ((f ** g) a) -> Additive ((f ** g) a) #

greplicate :: Integer -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Group (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

inv :: Additive (Lin a b c) -> Additive (Lin a b c) #

greplicate :: Integer -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Group (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

inv :: Additive (Cov a b) -> Additive (Cov a b) #

greplicate :: Integer -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Group (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

inv :: Additive (Vec a b) -> Additive (Vec a b) #

greplicate :: Integer -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Group (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V4 a) -> Additive (V4 a) #

greplicate :: Integer -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Group (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V3 a) -> Additive (V3 a) #

greplicate :: Integer -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Group (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V2 a) -> Additive (V2 a) #

greplicate :: Integer -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Group (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V1 a) -> Additive (V1 a) #

greplicate :: Integer -> Additive (V1 a) -> Additive (V1 a) #

Loop (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Loop (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive (a -> b) #

lreplicate :: Natural -> Additive (a -> b) -> Additive (a -> b) #

Loop (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Loop (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive () #

lreplicate :: Natural -> Additive () -> Additive () #

(Additive - Group) a => Loop (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive (Op a b) #

lreplicate :: Natural -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Loop (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Loop (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive ((f ++ g) a) #

lreplicate :: Natural -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Loop (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive ((f ** g) a) #

lreplicate :: Natural -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Loop (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lempty :: Additive (Lin a b c) #

lreplicate :: Natural -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Loop (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lempty :: Additive (Cov a b) #

lreplicate :: Natural -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Loop (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lempty :: Additive (Vec a b) #

lreplicate :: Natural -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Loop (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V4 a) #

lreplicate :: Natural -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Loop (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V3 a) #

lreplicate :: Natural -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Loop (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V2 a) #

lreplicate :: Natural -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Loop (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V1 a) #

lreplicate :: Natural -> Additive (V1 a) -> Additive (V1 a) #

Quasigroup (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Quasigroup (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

(\\) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

Quasigroup (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Quasigroup (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

(\\) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

Quasigroup (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive () -> Additive () -> Additive () #

(\\) :: Additive () -> Additive () -> Additive () #

(Additive - Group) a => Quasigroup (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

(\\) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Quasigroup (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Quasigroup (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

(\\) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Quasigroup (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(\\) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Quasigroup (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(//) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

(\\) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Quasigroup (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(//) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

(\\) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Quasigroup (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(//) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

(\\) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Quasigroup (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(\\) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Quasigroup (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(\\) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Quasigroup (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(\\) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Quasigroup (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

(\\) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

Magma (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Magma (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

Magma (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Magma (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

Magma (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive () -> Additive () -> Additive () #

(Additive - Group) a => Magma (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Magma (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (Complex a) -> Additive (Complex a) -> Additive (Complex a) #

Magma (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Magma (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Magma (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Magma (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<<) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Magma (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<<) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Magma (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<<) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Magma (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Magma (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Magma (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Magma (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

type Rep Additive Source # 
Instance details

Defined in Data.Semiring

type Rep Additive = ()
type Rep (Additive a) Source # 
Instance details

Defined in Data.Semiring

type Rep (Additive a) = D1 (MetaData "Additive" "Data.Semiring" "rings-0.1.3-BFdOLcheYTn8vzZgCGb7ir" True) (C1 (MetaCons "Additive" PrefixI True) (S1 (MetaSel (Just "unAdditive") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

Multiplicative

newtype Multiplicative a Source #

A (potentially non-commutative) Semigroup under *.

Constructors

Multiplicative 

Fields

Instances
Functor Multiplicative Source # 
Instance details

Defined in Data.Semiring

Methods

fmap :: (a -> b) -> Multiplicative a -> Multiplicative b #

(<$) :: a -> Multiplicative b -> Multiplicative a #

Applicative Multiplicative Source # 
Instance details

Defined in Data.Semiring

Distributive Multiplicative Source # 
Instance details

Defined in Data.Semiring

Methods

distribute :: Functor f => f (Multiplicative a) -> Multiplicative (f a) #

collect :: Functor f => (a -> Multiplicative b) -> f a -> Multiplicative (f b) #

distributeM :: Monad m => m (Multiplicative a) -> Multiplicative (m a) #

collectM :: Monad m => (a -> Multiplicative b) -> m a -> Multiplicative (m b) #

Representable Multiplicative Source # 
Instance details

Defined in Data.Semiring

Associated Types

type Rep Multiplicative :: Type #

Eq a => Eq (Multiplicative a) Source # 
Instance details

Defined in Data.Semiring

Ord a => Ord (Multiplicative a) Source # 
Instance details

Defined in Data.Semiring

Show a => Show (Multiplicative a) Source # 
Instance details

Defined in Data.Semiring

Generic (Multiplicative a) Source # 
Instance details

Defined in Data.Semiring

Associated Types

type Rep (Multiplicative a) :: Type -> Type #

Semigroup (Multiplicative Bool) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) b => Semigroup (Multiplicative (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Multiplicative (a -> b) -> Multiplicative (a -> b) -> Multiplicative (a -> b) #

sconcat :: NonEmpty (Multiplicative (a -> b)) -> Multiplicative (a -> b) #

stimes :: Integral b0 => b0 -> Multiplicative (a -> b) -> Multiplicative (a -> b) #

Semigroup (Multiplicative Int) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Int8) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Int16) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Int32) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Int64) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Integer) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Natural) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Semigroup (Multiplicative [a]) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Maybe a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Word) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Word8) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Word16) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Word32) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Word64) Source # 
Instance details

Defined in Data.Semiring

((Multiplicative - Semigroup) a, (Multiplicative - Semigroup) b) => Semigroup (Multiplicative (Either a b)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

((Multiplicative - Semigroup) a, (Multiplicative - Semigroup) b) => Semigroup (Multiplicative (a, b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<>) :: Multiplicative (a, b) -> Multiplicative (a, b) -> Multiplicative (a, b) #

sconcat :: NonEmpty (Multiplicative (a, b)) -> Multiplicative (a, b) #

stimes :: Integral b0 => b0 -> Multiplicative (a, b) -> Multiplicative (a, b) #

((Additive - Group) a, (Multiplicative - Semigroup) a) => Semigroup (Multiplicative (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Semigroup (Multiplicative (Min a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Max a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Dual a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (Down a)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

(Additive - Semigroup) a => Semigroup (Multiplicative (NonEmpty a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Semigroup) a => Semigroup (Multiplicative (IntMap a)) Source # 
Instance details

Defined in Data.Semiring

Semigroup (Multiplicative IntSet) Source # 
Instance details

Defined in Data.Semiring

(Ord k, (Multiplicative - Semigroup) a) => Semigroup (Multiplicative (Map k a)) Source # 
Instance details

Defined in Data.Semiring

Ord a => Semigroup (Multiplicative (Set a)) Source # 
Instance details

Defined in Data.Semiring

Presemiring a => Semigroup (Multiplicative (End a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Semiring a => Semigroup (Multiplicative (M44 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semigroup (Multiplicative (M33 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semigroup (Multiplicative (M22 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Semigroup (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Monoid (Multiplicative Bool) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) b => Monoid (Multiplicative (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

mempty :: Multiplicative (a -> b) #

mappend :: Multiplicative (a -> b) -> Multiplicative (a -> b) -> Multiplicative (a -> b) #

mconcat :: [Multiplicative (a -> b)] -> Multiplicative (a -> b) #

Monoid (Multiplicative Int) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Int8) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Int16) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Int32) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Int64) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Integer) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Natural) Source # 
Instance details

Defined in Data.Semiring

(Additive - Monoid) a => Monoid (Multiplicative [a]) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Monoid (Multiplicative (Maybe a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Monoid (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Word) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Word8) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Word16) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Word32) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Word64) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

(Additive - Monoid) a => Monoid (Multiplicative (Min a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Monoid (Multiplicative (Max a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Monoid (Multiplicative (Dual a)) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Monoid (Multiplicative (Down a)) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Monoid (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Monoid (Multiplicative (IntMap a)) Source # 
Instance details

Defined in Data.Semiring

(Ord k, (Multiplicative - Monoid) k, (Multiplicative - Monoid) a) => Monoid (Multiplicative (Map k a)) Source # 
Instance details

Defined in Data.Semiring

Semiring a => Monoid (Multiplicative (End a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Semiring a => Monoid (Multiplicative (M44 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Monoid (Multiplicative (M33 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Monoid (Multiplicative (M22 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Semiring a => Monoid (Multiplicative (M11 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Group (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Group (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Loop (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Quasigroup (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Magma (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

type Rep Multiplicative Source # 
Instance details

Defined in Data.Semiring

type Rep (Multiplicative a) Source # 
Instance details

Defined in Data.Semiring

type Rep (Multiplicative a) = D1 (MetaData "Multiplicative" "Data.Semiring" "rings-0.1.3-BFdOLcheYTn8vzZgCGb7ir" True) (C1 (MetaCons "Multiplicative" PrefixI True) (S1 (MetaSel (Just "unMultiplicative") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

Re-exports

class Magma a where #

Methods

(<<) :: a -> a -> a infixl 6 #

Instances
Magma (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Magma (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Magma (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Magma (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

Magma (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Magma (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

Magma (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive () -> Additive () -> Additive () #

(Additive - Group) a => Magma (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Magma (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive (Complex a) -> Additive (Complex a) -> Additive (Complex a) #

Magma (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Magma (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Magma (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Magma (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(<<) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Magma (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<<) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Magma (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<<) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Magma (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(<<) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Magma (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Magma (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Magma (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Magma (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(<<) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

class Magma a => Quasigroup a #

Instances
Quasigroup (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Quasigroup (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Quasigroup (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

(\\) :: Additive (a -> b) -> Additive (a -> b) -> Additive (a -> b) #

Quasigroup (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Quasigroup (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

(\\) :: Additive (Ratio a) -> Additive (Ratio a) -> Additive (Ratio a) #

Quasigroup (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive () -> Additive () -> Additive () #

(\\) :: Additive () -> Additive () -> Additive () #

(Additive - Group) a => Quasigroup (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

(\\) :: Additive (Op a b) -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Quasigroup (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Quasigroup (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Quasigroup (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

(\\) :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Quasigroup (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

(//) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(\\) :: Additive ((f ** g) a) -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Quasigroup (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(//) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

(\\) :: Additive (Lin a b c) -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Quasigroup (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(//) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

(\\) :: Additive (Cov a b) -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Quasigroup (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

(//) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

(\\) :: Additive (Vec a b) -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Quasigroup (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(\\) :: Additive (V4 a) -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Quasigroup (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(\\) :: Additive (V3 a) -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Quasigroup (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(\\) :: Additive (V2 a) -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Quasigroup (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

(//) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

(\\) :: Additive (V1 a) -> Additive (V1 a) -> Additive (V1 a) #

class Quasigroup a => Loop a #

Instances
(Semigroup a, Quasigroup (Maybe a)) => Loop (Maybe a) 
Instance details

Defined in Data.Group

Methods

lempty :: Maybe a #

lreplicate :: Natural -> Maybe a -> Maybe a #

Loop (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Loop (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Loop (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Loop (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive (a -> b) #

lreplicate :: Natural -> Additive (a -> b) -> Additive (a -> b) #

Loop (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Loop (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive () #

lreplicate :: Natural -> Additive () -> Additive () #

(Additive - Group) a => Loop (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive (Op a b) #

lreplicate :: Natural -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Loop (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Loop (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Loop (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive ((f ++ g) a) #

lreplicate :: Natural -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Loop (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

lempty :: Additive ((f ** g) a) #

lreplicate :: Natural -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Loop (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lempty :: Additive (Lin a b c) #

lreplicate :: Natural -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Loop (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lempty :: Additive (Cov a b) #

lreplicate :: Natural -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Loop (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lempty :: Additive (Vec a b) #

lreplicate :: Natural -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Loop (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V4 a) #

lreplicate :: Natural -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Loop (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V3 a) #

lreplicate :: Natural -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Loop (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V2 a) #

lreplicate :: Natural -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Loop (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

lempty :: Additive (V1 a) #

lreplicate :: Natural -> Additive (V1 a) -> Additive (V1 a) #

class (Loop a, Monoid a) => Group a where #

Minimal complete definition

Nothing

Methods

inv :: a -> a #

greplicate :: Integer -> a -> a #

Instances
(Semigroup a, Quasigroup (Maybe a)) => Group (Maybe a) 
Instance details

Defined in Data.Group

Methods

inv :: Maybe a -> Maybe a #

greplicate :: Integer -> Maybe a -> Maybe a #

Group (Multiplicative Double) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Float) Source # 
Instance details

Defined in Data.Semiring

(Multiplicative - Monoid) a => Group (Multiplicative (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative ()) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Uni) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Deci) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Centi) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Milli) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Micro) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Nano) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative Pico) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative CFloat) Source # 
Instance details

Defined in Data.Semiring

Group (Multiplicative CDouble) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Double) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Float) Source # 
Instance details

Defined in Data.Semiring

(Additive - Group) b => Group (Additive (a -> b)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive (a -> b) -> Additive (a -> b) #

greplicate :: Integer -> Additive (a -> b) -> Additive (a -> b) #

Group (Additive Int) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int8) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int16) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int32) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Int64) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Integer) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, (Multiplicative - Monoid) a) => Group (Additive (Ratio a)) Source # 
Instance details

Defined in Data.Semiring

Group (Additive ()) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive () -> Additive () #

greplicate :: Integer -> Additive () -> Additive () #

(Additive - Group) a => Group (Additive (Op a b)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive (Op a b) -> Additive (Op a b) #

greplicate :: Integer -> Additive (Op a b) -> Additive (Op a b) #

(Additive - Group) a => Group (Additive (Complex a)) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Uni) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Deci) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Centi) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Milli) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Micro) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Nano) Source # 
Instance details

Defined in Data.Semiring

Group (Additive Pico) Source # 
Instance details

Defined in Data.Semiring

Group (Additive CFloat) Source # 
Instance details

Defined in Data.Semiring

Group (Additive CDouble) Source # 
Instance details

Defined in Data.Semiring

((Additive - Group) a, Free f, Free g) => Group (Additive ((f ++ g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

greplicate :: Integer -> Additive ((f ++ g) a) -> Additive ((f ++ g) a) #

((Additive - Group) a, Free f, Free g) => Group (Additive ((f ** g) a)) Source # 
Instance details

Defined in Data.Semiring

Methods

inv :: Additive ((f ** g) a) -> Additive ((f ** g) a) #

greplicate :: Integer -> Additive ((f ** g) a) -> Additive ((f ** g) a) #

(Additive - Group) a => Group (Additive (Lin a b c)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

inv :: Additive (Lin a b c) -> Additive (Lin a b c) #

greplicate :: Integer -> Additive (Lin a b c) -> Additive (Lin a b c) #

(Additive - Group) a => Group (Additive (Cov a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

inv :: Additive (Cov a b) -> Additive (Cov a b) #

greplicate :: Integer -> Additive (Cov a b) -> Additive (Cov a b) #

(Additive - Group) a => Group (Additive (Vec a b)) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

inv :: Additive (Vec a b) -> Additive (Vec a b) #

greplicate :: Integer -> Additive (Vec a b) -> Additive (Vec a b) #

(Additive - Group) a => Group (Additive (V4 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V4 a) -> Additive (V4 a) #

greplicate :: Integer -> Additive (V4 a) -> Additive (V4 a) #

(Additive - Group) a => Group (Additive (V3 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V3 a) -> Additive (V3 a) #

greplicate :: Integer -> Additive (V3 a) -> Additive (V3 a) #

(Additive - Group) a => Group (Additive (V2 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V2 a) -> Additive (V2 a) #

greplicate :: Integer -> Additive (V2 a) -> Additive (V2 a) #

(Additive - Group) a => Group (Additive (V1 a)) Source # 
Instance details

Defined in Data.Semimodule.Finite

Methods

inv :: Additive (V1 a) -> Additive (V1 a) #

greplicate :: Integer -> Additive (V1 a) -> Additive (V1 a) #