alg-0.1.0.0: Algebraic structures

Safe HaskellSafe
LanguageHaskell2010

Algebra

Documentation

class Semigroup a => Abelian a Source #

class Monoid a => Group a where Source #

Minimal complete definition

invert

Methods

invert :: a -> a Source #

Instances

Group () Source # 

Methods

invert :: () -> () Source #

Group a => Group (IO a) Source # 

Methods

invert :: IO a -> IO a Source #

Group a => Group (Identity a) Source # 

Methods

invert :: Identity a -> Identity a Source #

Group a => Group (Dual a) Source # 

Methods

invert :: Dual a -> Dual a Source #

Group (Sum Integer) Source # 
Group b => Group (a -> b) Source # 

Methods

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

(Group a, Group b) => Group (a, b) Source # 

Methods

invert :: (a, b) -> (a, b) Source #

Group (Proxy k a) Source # 

Methods

invert :: Proxy k a -> Proxy k a Source #

(Group a, Group b, Group c) => Group (a, b, c) Source # 

Methods

invert :: (a, b, c) -> (a, b, c) Source #

Group a => Group (Const k a b) Source # 

Methods

invert :: Const k a b -> Const k a b Source #

(Group a, Group b, Group c, Group d) => Group (a, b, c, d) Source # 

Methods

invert :: (a, b, c, d) -> (a, b, c, d) Source #

(Group a, Group b, Group c, Group d, Group e) => Group (a, b, c, d, e) Source # 

Methods

invert :: (a, b, c, d, e) -> (a, b, c, d, e) Source #

(+) :: Semigroup (Sum a) => a -> a -> a Source #

(-) :: (Semigroup (Sum a), Group (Sum a)) => a -> a -> a Source #

(*) :: Semigroup (Product a) => a -> a -> a Source #

(/) :: (Semigroup (Product a), Group (Product a)) => a -> a -> a Source #