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

Pandora.Pattern.Object.Ringoid

Synopsis

Documentation

class Semigroup a => Ringoid a where Source #

When providing a new instance, you should ensure it satisfies:
* Left distributivity: x * (y + z) ≡ x * y + x * z
* Right distributivity: (y + z) * x ≡ y * x + z * x

Methods

(*) :: a -> a -> a infixl 8 Source #

Instances

Instances details
Ringoid Boolean Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Object.Boolean

Methods

(*) :: Boolean -> Boolean -> Boolean Source #

Ringoid Denumerator Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Object.Denumerator

Ringoid Numerator Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Object.Numerator

Ringoid a => Ringoid (Exactly a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Exactly

Methods

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

Ringoid r => Ringoid (e -> r) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic.Exponential

Methods

(*) :: (e -> r) -> (e -> r) -> e -> r Source #

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

Defined in Pandora.Paradigm.Primary.Algebraic.Product

Methods

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

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

Defined in Pandora.Paradigm.Primary.Linear.Vector

Methods

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

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

Defined in Pandora.Paradigm.Primary.Linear.Vector

Methods

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

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

Defined in Pandora.Paradigm.Primary.Functor.Constant

Methods

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

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

Defined in Pandora.Paradigm.Primary.Functor.Tagged

Methods

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