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

Pandora.Pattern.Functor.Semimonoidal

Documentation

class Semigroupoid p => Semimonoidal t p source target where Source #

Methods

multiply_ :: p (source (t a) (t b)) (t (target a b)) Source #

Instances

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

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

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

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

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

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

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

Defined in Pandora.Paradigm.Primary.Algebraic

Methods

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

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

Defined in Pandora.Paradigm.Primary.Functor.Validation

Methods

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

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

Defined in Pandora.Paradigm.Primary.Functor.Validation

Methods

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

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

Defined in Pandora.Paradigm.Primary.Transformer.Instruction

Methods

multiply_ :: forall (a :: k) (b :: k). (Instruction t a :*: Instruction t b) -> Instruction t (a :*: b) Source #

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

Defined in Pandora.Paradigm.Primary.Transformer.Construction

Methods

multiply_ :: forall (a :: k) (b :: k). (Construction t a :*: Construction t b) -> Construction t (a :*: b) Source #

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

Defined in Pandora.Paradigm.Primary.Functor.Conclusion

Methods

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

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

Defined in Pandora.Paradigm.Primary.Functor.Conclusion

Methods

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

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

Defined in Pandora.Paradigm.Structure.Modification.Comprehension

Methods

multiply_ :: forall (a :: k) (b :: k). (Comprehension t a :*: Comprehension t b) -> Comprehension t (a :*: b) Source #

Semimonoidal t ((->) :: Type -> Type -> Type) (:*:) (:*:) => Semimonoidal (Tap t :: Type -> Type) ((->) :: Type -> Type -> Type) (:*:) (:*:) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Tap

Methods

multiply_ :: forall (a :: k) (b :: k). (Tap t a :*: Tap t b) -> Tap t (a :*: b) Source #

Semimonoidal t ((->) :: Type -> Type -> Type) (:*:) (:*:) => Semimonoidal (Tap ((t <:.:> t) := (:*:)) :: Type -> Type) ((->) :: Type -> Type -> Type) (:*:) (:*:) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Tap

Methods

multiply_ :: forall (a :: k) (b :: k). (Tap ((t <:.:> t) := (:*:)) a :*: Tap ((t <:.:> t) := (:*:)) b) -> Tap ((t <:.:> t) := (:*:)) (a :*: b) Source #

Semimonoidal (Tap ((Comprehension Maybe <:.:> Comprehension Maybe) := (:*:))) ((->) :: Type -> Type -> Type) (:*:) (:*:) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.List

Semimonoidal (State s :: Type -> Type) ((->) :: Type -> Type -> Type) (:*:) (:*:) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.State

Methods

multiply_ :: forall (a :: k) (b :: k). (State s a :*: State s b) -> State s (a :*: b) Source #

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

Defined in Pandora.Paradigm.Inventory.Environment

Methods

multiply_ :: forall (a :: k) (b :: k). (Environment e a :*: Environment e b) -> Environment e (a :*: b) Source #

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

Defined in Pandora.Paradigm.Inventory.Accumulator

Methods

multiply_ :: forall (a :: k) (b :: k). (Accumulator e a :*: Accumulator e b) -> Accumulator e (a :*: b) Source #

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

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

Methods

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

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

Defined in Pandora.Paradigm.Primary.Transformer.Backwards

Methods

multiply_ :: forall (a :: k) (b :: k). (Backwards t a :*: Backwards t b) -> Backwards t (a :*: b) Source #

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

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

Methods

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

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

Defined in Pandora.Paradigm.Primary.Algebraic

Methods

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

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

Defined in Pandora.Paradigm.Primary.Algebraic.Product

Methods

multiply_ :: forall (a :: k) (b :: k). (((t <:.:> t) := (:*:)) a :*: ((t <:.:> t) := (:*:)) b) -> ((t <:.:> t) := (:*:)) (a :*: b) Source #

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

Defined in Pandora.Paradigm.Schemes.TUT

Methods

multiply_ :: forall (a :: k) (b :: k). (((t <:<.>:> t') := u) a :*: ((t <:<.>:> t') := u) b) -> ((t <:<.>:> t') := u) (a :*: b) Source #

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

Defined in Pandora.Paradigm.Schemes.UT

Methods

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

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

Defined in Pandora.Paradigm.Schemes.TU

Methods

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