pandora-0.4.4: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Pattern.Object.Group

Synopsis

Documentation

class Monoid a => Group a where Source #

When providing a new instance, you should ensure it satisfies:
* Right absorption: x + invert x ≡ zero
* Left absorption: invert x + x ≡ zero

Minimal complete definition

invert

Methods

invert :: a -> a Source #

(-) :: a -> a -> a infixl 7 Source #

Instances

Instances details
Group a => Group (Identity a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Identity

(Group s, Group a) => Group (s :*: a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic.Product

Methods

invert :: (s :*: a) -> s :*: a Source #

(-) :: (s :*: a) -> (s :*: a) -> s :*: a Source #

Group a => Group (Vector a a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Linear.Vector

Methods

invert :: Vector a a -> Vector a a Source #

(-) :: Vector a a -> Vector a a -> Vector a a Source #

(Group a, Group r, Group (a :*: r), Group (Vector r a)) => Group (Vector (a :*: r) a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Linear.Vector

Methods

invert :: Vector (a :*: r) a -> Vector (a :*: r) a Source #

(-) :: Vector (a :*: r) a -> Vector (a :*: r) a -> Vector (a :*: r) a Source #

Group a => Group (Constant a b) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Constant

Methods

invert :: Constant a b -> Constant a b Source #

(-) :: Constant a b -> Constant a b -> Constant a b Source #

Group a => Group (Tagged tag a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Tagged

Methods

invert :: Tagged tag a -> Tagged tag a Source #

(-) :: Tagged tag a -> Tagged tag a -> Tagged tag a Source #