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

Pandora.Paradigm.Primary.Algebraic.Sum

Documentation

data s :+: a infixr 0 Source #

Constructors

Option s 
Adoption a 

Instances

Instances details
Monoidal (-->) ((->) :: Type -> Type -> Type) (:*:) (:+:) Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

unit :: Proxy (:*:) -> (Unit (:+:) -> a) --> Maybe a Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Monoidal (-->) ((->) :: Type -> Type -> Type) (:*:) (:+:) t) => Monoidal (-->) ((->) :: Type -> Type -> Type) (:*:) (:+:) (Comprehension t) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Modification.Comprehension

Methods

unit :: Proxy (:*:) -> (Unit (:+:) -> a) --> Comprehension t a Source #

Monoidal (-->) ((->) :: Type -> Type -> Type) (:*:) (:*:) ((:+:) e) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic

Methods

unit :: Proxy (:*:) -> (Unit (:*:) -> a) --> (e :+: a) Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) u, Monoidal (-->) ((->) :: Type -> Type -> Type) (:*:) (:+:) t) => Monoidal (-->) ((->) :: Type -> Type -> Type) (:*:) (:+:) (t <:.> u) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes.TU

Methods

unit :: Proxy (:*:) -> (Unit (:+:) -> a) --> (t <:.> u) a Source #

Semimonoidal (-->) (:*:) (:+:) Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

mult :: forall (a :: k) (b :: k). (Maybe a :*: Maybe b) --> Maybe (a :+: b) Source #

Semimonoidal (-->) (:*:) (:+:) ((:+:) e :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic

Methods

mult :: forall (a :: k) (b :: k). ((e :+: a) :*: (e :+: b)) --> (e :+: (a :+: b)) Source #

Semigroup e => Semimonoidal (-->) (:*:) (:+:) (Validation e :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Validation

Methods

mult :: forall (a :: k) (b :: k). (Validation e a :*: Validation e b) --> Validation e (a :+: b) Source #

Semigroup e => Semimonoidal (-->) (:*:) (:+:) (Conclusion e :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Conclusion

Methods

mult :: forall (a :: k) (b :: k). (Conclusion e a :*: Conclusion e b) --> Conclusion e (a :+: b) Source #

Semimonoidal (-->) (:*:) (:*:) ((:+:) e :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic

Methods

mult :: forall (a :: k) (b :: k). ((e :+: a) :*: (e :+: b)) --> (e :+: (a :*: b)) Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) u, Semimonoidal (-->) (:*:) (:+:) t) => Semimonoidal (-->) (:*:) (:+:) (t <:.> u :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes.TU

Methods

mult :: forall (a :: k) (b :: k). ((t <:.> u) a :*: (t <:.> u) b) --> (t <:.> u) (a :+: b) Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((:+:) s) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic.Sum

Methods

(<$>) :: (a -> b) -> (s :+: a) -> (s :+: b) Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (Flip (:+:) a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic.Sum

Methods

(<$>) :: (a0 -> b) -> Flip (:+:) a a0 -> Flip (:+:) a b Source #

Bivariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (:+:) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic.Sum

Methods

(<->) :: (a -> b) -> (c -> d) -> (a :+: c) -> (b :+: d) Source #

type Unit (:+:) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic

type Unit (:+:) = Zero

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