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

Pandora.Pattern.Object.Semigroup

Synopsis

Documentation

class Semigroup a where Source #

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

Methods

(+) :: a -> a -> a infixl 9 Source #

Instances

Instances details
Semigroup Boolean Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Object.Boolean

Methods

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

Semigroup Denumerator Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Object.Denumerator

Semigroup Numerator Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Object.Numerator

Semigroup a => Semigroup (Wye a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Wye

Methods

(+) :: Wye a -> Wye a -> Wye a Source #

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

Defined in Pandora.Paradigm.Primary.Functor.Exactly

Methods

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

Semigroup (Endo a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Endo

Methods

(+) :: Endo a -> Endo a -> Endo a Source #

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

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

(+) :: Maybe a -> Maybe a -> Maybe a Source #

Semigroup (List a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.List

Methods

(+) :: List a -> List a -> List a Source #

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

Defined in Pandora.Paradigm.Algebraic.Exponential

Methods

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

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

Defined in Pandora.Paradigm.Algebraic.Product

Methods

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

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

Defined in Pandora.Paradigm.Primary.Linear.Vector

Methods

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

(Semigroup a, Semigroup r, Semigroup (a :*: r), Semigroup (Vector r a)) => Semigroup (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 #

(Semigroup e, Semigroup a) => Semigroup (Validation e a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Validation

Methods

(+) :: Validation e a -> Validation e a -> Validation e a Source #

(Semigroup e, Semigroup a) => Semigroup (These e a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.These

Methods

(+) :: These e a -> These e a -> These e a Source #

(Semigroup a, forall b. Semigroup b => Semigroup (t b), Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Semimonoidal (<--) (:*:) (:*:) t) => Semigroup (Construction t a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Construction

Methods

(+) :: Construction t a -> Construction t a -> Construction t a Source #

Semigroup (Construction Maybe a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.List

(Semigroup e, Semigroup a) => Semigroup (Conclusion e a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Conclusion

Methods

(+) :: Conclusion e a -> Conclusion e a -> Conclusion e a Source #

Semigroup ((t <::> Construction t) > a) => Semigroup (Comprehension t a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Modification.Comprehension

Methods

(+) :: Comprehension t a -> Comprehension t a -> Comprehension t a Source #

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

Defined in Pandora.Paradigm.Primary.Functor.Constant

Methods

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

(Semigroup a, Semigroup (Vector i a), Semigroup (Vector i (Vector j a))) => Semigroup (Matrix i j a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Linear.Matrix

Methods

(+) :: Matrix i j a -> Matrix i j a -> Matrix i j a Source #

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

Defined in Pandora.Paradigm.Primary.Functor.Tagged

Methods

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