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

Pandora.Paradigm.Algebraic.Sum

Documentation

data o :+: a infixr 7 Source #

Constructors

Option o 
Adoption a 

Instances

Instances details
Monoidal (-->) (-->) (:*:) (:+:) 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, Semimonoidal (-->) (:*:) (:*:) t, Semimonoidal (-->) (:*:) (:*:) (Construction t), Semimonoidal (-->) (:*:) (:+:) t, Semimonoidal (-->) (:*:) (:+:) (Construction t), Monoidal (-->) (-->) (:*:) (:+:) t) => Monoidal (-->) (-->) (:*:) (:+:) (Comprehension t) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Modification.Comprehension

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

Defined in Pandora.Paradigm.Algebraic

Methods

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

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

Defined in Pandora.Paradigm.Primary.Transformer.Reverse

Methods

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

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

Defined in Pandora.Paradigm.Algebraic

Methods

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

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

Defined in Pandora.Paradigm.Schemes.TU

Methods

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

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

Defined in Pandora.Paradigm.Schemes.TT

Methods

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

Possible o (o :+: a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure

Methods

perhaps :: Lens Maybe (o :+: a) o Source #

Possible a (o :+: a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure

Methods

perhaps :: Lens Maybe (o :+: a) a Source #

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

Defined in Pandora.Paradigm.Primary.Functor.Predicate

Methods

mult :: forall (a :: k) (b :: k). (Predicate a :*: Predicate b) --> Predicate (a :+: b) 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.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.Algebraic

Methods

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

Semimonoidal (-->) (:*:) (:+:) (Schematic Monad t u) => Semimonoidal (-->) (:*:) (:+:) (t :> u :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Transformer.Monadic

Methods

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

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

Defined in Pandora.Paradigm.Primary.Transformer.Reverse

Methods

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

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

Defined in Pandora.Paradigm.Algebraic

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) u, Semimonoidal (-->) (:*:) (:+:) u) => Semimonoidal (-->) (:*:) (:+:) ((((->) s :: Type -> Type) <:<.>:> (:*:) s) >>>>>>>> u :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes.TUT

Methods

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

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

Defined in Pandora.Paradigm.Schemes.UT

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) t, Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) u, Semimonoidal (-->) (:*:) (:*:) t, Semimonoidal (-->) (:*:) (:+:) u) => 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) t, Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t', Semimonoidal (-->) (:*:) (:+:) t) => Semimonoidal (-->) (:*:) (:+:) (t <::> t' :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes.TT

Methods

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

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

Defined in Pandora.Paradigm.Algebraic.Sum

Methods

(<-|-) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|--) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|---) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|----) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|-----) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|------) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|-------) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|--------) :: (a -> b) -> (o :+: a) -> (o :+: b) Source #

(<-|-|-) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|--) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|---) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|----) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|-----) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|------) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|-------) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u a) -> (o :+: u b) Source #

(<-|-|-|-) :: (Covariant (->) (Betwixt (->) (Betwixt (->) (->))) v, Covariant (Betwixt (->) (Betwixt (->) (->))) (Betwixt (Betwixt (->) (->)) (->)) u, Covariant (Betwixt (Betwixt (->) (->)) (->)) (->) ((:+:) o)) => (a -> b) -> (o :+: u (v a)) -> (o :+: u (v b)) Source #

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

Defined in Pandora.Paradigm.Algebraic.Sum

Methods

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

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

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

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

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

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

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

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

(<-|-|-) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|--) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|---) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|----) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|-----) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|------) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|-------) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u a0) -> Flip (:+:) a (u b) Source #

(<-|-|-|-) :: (Covariant (->) (Betwixt (->) (Betwixt (->) (->))) v, Covariant (Betwixt (->) (Betwixt (->) (->))) (Betwixt (Betwixt (->) (->)) (->)) u, Covariant (Betwixt (Betwixt (->) (->)) (->)) (->) (Flip (:+:) a)) => (a0 -> b) -> Flip (:+:) a (u (v a0)) -> Flip (:+:) a (u (v b)) Source #

type Unit (:+:) Source # 
Instance details

Defined in Pandora.Paradigm.Algebraic.Functor

type Unit (:+:) = Zero

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

bitraverse_sum :: Covariant (->) (->) t => (e -> t e') -> (a -> t a') -> (e :+: a) -> t (e' :+: a') Source #

type (<:+:>) t u = (t <:.:> u) >>>>>> (:+:) Source #

type (>:+:>) t u = (t >:.:> u) >>>>>> (:+:) Source #

type (<:+:<) t u = (t <:.:< u) >>>>>> (:+:) Source #

type (>:+:<) t u = (t >:.:< u) >>>>>> (:+:) Source #