monoidal-functors-0.1.1.0: Monoidal Functors Library
Safe HaskellNone
LanguageHaskell2010

Data.Bifunctor.Monoidal

Documentation

class (Associative t1 cat, Associative t2 cat, Associative to cat) => Semigroupal cat t1 t2 to f where Source #

Methods

combine :: cat (to (f x y) (f x' y')) (f (t1 x x') (t2 y y')) Source #

Instances

Instances details
Semigroupal ((->) :: Type -> Type -> Type) Either Either Either Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: Either (Either x y) (Either x' y') -> Either (Either x x') (Either y y') Source #

Semigroupal ((->) :: Type -> Type -> Type) Either Either Either (,) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: Either (x, y) (x', y') -> (Either x x', Either y y') Source #

Semigroupal ((->) :: Type -> Type -> Type) Either (,) (,) Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Either x y, Either x' y') -> Either (Either x x') (y, y') Source #

Profunctor p => Semigroupal ((->) :: Type -> Type -> Type) (,) Either Either p Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: Either (p x y) (p x' y') -> p (x, x') (Either y y') Source #

Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (,) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: ((x, y), (x', y')) -> ((x, x'), (y, y')) Source #

Semigroupal ((->) :: Type -> Type -> Type) These (,) (,) Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Either x y, Either x' y') -> Either (These x x') (y, y') Source #

(Strong p, Semigroupoid p) => Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (StrongCategory p x y, StrongCategory p x' y') -> StrongCategory p (x, x') (y, y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) Either Either Either (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: Either (Star f x y) (Star f x' y') -> Star f (Either x x') (Either y y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) Either Either Either (Forget (f r) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: Either (Forget (f r) x y) (Forget (f r) x' y') -> Forget (f r) (Either x x') (Either y y') Source #

Semigroupal ((->) :: Type -> Type -> Type) Either Either (,) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (x -> y, x' -> y') -> (Either x x' -> Either y y') Source #

Functor f => Semigroupal ((->) :: Type -> Type -> Type) Either Either (,) (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Star f x y, Star f x' y') -> Star f (Either x x') (Either y y') Source #

Semigroupal ((->) :: Type -> Type -> Type) Either Either (,) (Forget (f r) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Forget (f r) x y, Forget (f r) x' y') -> Forget (f r) (Either x x') (Either y y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) (,) Either (,) (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Star f x y, Star f x' y') -> Star f (x, x') (Either y y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) (,) Either (,) (Forget (f r) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Forget (f r) x y, Forget (f r) x' y') -> Forget (f r) (x, x') (Either y y') Source #

Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (x -> y, x' -> y') -> ((x, x') -> (y, y')) Source #

Applicative f => Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Star f x y, Star f x' y') -> Star f (x, x') (y, y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (Forget (f r) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Forget (f r) x y, Forget (f r) x' y') -> Forget (f r) (x, x') (y, y') Source #

Functor f => Semigroupal ((->) :: Type -> Type -> Type) Either Either Either (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: Either (Joker f x y) (Joker f x' y') -> Joker f (Either x x') (Either y y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) Either Either (,) (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Joker f x y, Joker f x' y') -> Joker f (Either x x') (Either y y') Source #

Alternative f => Semigroupal ((->) :: Type -> Type -> Type) Either Either (,) (Clown f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Clown f x y, Clown f x' y') -> Clown f (Either x x') (Either y y') Source #

Applicative f => Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Joker f x y, Joker f x' y') -> Joker f (x, x') (y, y') Source #

Applicative f => Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (Clown f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (Clown f x y, Clown f x' y') -> Clown f (x, x') (y, y') Source #

class Unital cat i1 i2 io f where Source #

Methods

introduce :: cat io (f i1 i2) Source #

Instances

Instances details
Unital ((->) :: Type -> Type -> Type) () () () (,) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> ((), ()) Source #

Unital ((->) :: Type -> Type -> Type) Void () () Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> Either Void () Source #

Unital ((->) :: Type -> Type -> Type) Void Void Void Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Unital ((->) :: Type -> Type -> Type) Void Void Void (,) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: Void -> (Void, Void) Source #

(Profunctor p, Category p) => Unital ((->) :: Type -> Type -> Type) () () () (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> StrongCategory p () () Source #

Unital ((->) :: Type -> Type -> Type) () () () ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> (() -> ()) Source #

Applicative f => Unital ((->) :: Type -> Type -> Type) () () () (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> Star f () () Source #

Alternative f => Unital ((->) :: Type -> Type -> Type) () Void () (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> Star f () Void Source #

Unital ((->) :: Type -> Type -> Type) Void Void () ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> (Void -> Void) Source #

Unital ((->) :: Type -> Type -> Type) Void Void () (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> Star f Void Void Source #

Unital ((->) :: Type -> Type -> Type) Void Void Void ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: Void -> (Void -> Void) Source #

Alternative f => Unital ((->) :: Type -> Type -> Type) Void Void Void (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Applicative f => Unital ((->) :: Type -> Type -> Type) () () () (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> Joker f () () Source #

Alternative f => Unital ((->) :: Type -> Type -> Type) Void Void () (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> Joker f Void Void Source #

Unital ((->) :: Type -> Type -> Type) Void Void Void (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

class (Tensor t1 i1 cat, Tensor t2 i2 cat, Tensor to io cat, Semigroupal cat t1 t2 to f, Unital cat i1 i2 io f) => Monoidal cat t1 i1 t2 i2 to io f Source #

Instances

Instances details
Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void Either Void Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void Either Void (,) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Monoidal ((->) :: Type -> Type -> Type) Either Void (,) () (,) () Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Monoidal ((->) :: Type -> Type -> Type) (,) () (,) () (,) () (,) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Monoidal ((->) :: Type -> Type -> Type) These Void (,) () (,) () Either Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

(Strong p, Semigroupoid p, Category p) => Monoidal ((->) :: Type -> Type -> Type) (,) () (,) () (,) () (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Alternative f => Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void Either Void (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void (,) () ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Functor f => Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void (,) () (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Alternative f => Monoidal ((->) :: Type -> Type -> Type) (,) () Either Void (,) () (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Monoidal ((->) :: Type -> Type -> Type) (,) () (,) () (,) () ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Applicative f => Monoidal ((->) :: Type -> Type -> Type) (,) () (,) () (,) () (Star f) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Functor f => Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void Either Void (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Alternative f => Monoidal ((->) :: Type -> Type -> Type) Either Void Either Void (,) () (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Applicative f => Monoidal ((->) :: Type -> Type -> Type) (,) () (,) () (,) () (Joker f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

newtype StrongCategory p a b Source #

Constructors

StrongCategory (p a b) 

Instances

Instances details
Profunctor p => Profunctor (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

dimap :: (a -> b) -> (c -> d) -> StrongCategory p b c -> StrongCategory p a d #

lmap :: (a -> b) -> StrongCategory p b c -> StrongCategory p a c #

rmap :: (b -> c) -> StrongCategory p a b -> StrongCategory p a c #

(#.) :: forall a b c q. Coercible c b => q b c -> StrongCategory p a b -> StrongCategory p a c #

(.#) :: forall a b c q. Coercible b a => StrongCategory p b c -> q a b -> StrongCategory p a c #

Category p => Category (StrongCategory p :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

id :: forall (a :: k). StrongCategory p a a #

(.) :: forall (b :: k) (c :: k) (a :: k). StrongCategory p b c -> StrongCategory p a b -> StrongCategory p a c #

Semigroupoid p => Semigroupoid (StrongCategory p :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). StrongCategory p j k1 -> StrongCategory p i j -> StrongCategory p i k1 #

Monad (p a) => Monad (StrongCategory p a) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

(>>=) :: StrongCategory p a a0 -> (a0 -> StrongCategory p a b) -> StrongCategory p a b #

(>>) :: StrongCategory p a a0 -> StrongCategory p a b -> StrongCategory p a b #

return :: a0 -> StrongCategory p a a0 #

Functor (p a) => Functor (StrongCategory p a) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

fmap :: (a0 -> b) -> StrongCategory p a a0 -> StrongCategory p a b #

(<$) :: a0 -> StrongCategory p a b -> StrongCategory p a a0 #

Applicative (p a) => Applicative (StrongCategory p a) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

pure :: a0 -> StrongCategory p a a0 #

(<*>) :: StrongCategory p a (a0 -> b) -> StrongCategory p a a0 -> StrongCategory p a b #

liftA2 :: (a0 -> b -> c) -> StrongCategory p a a0 -> StrongCategory p a b -> StrongCategory p a c #

(*>) :: StrongCategory p a a0 -> StrongCategory p a b -> StrongCategory p a b #

(<*) :: StrongCategory p a a0 -> StrongCategory p a b -> StrongCategory p a a0 #

(Strong p, Semigroupoid p, Category p) => Monoidal ((->) :: Type -> Type -> Type) (,) () (,) () (,) () (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

(Profunctor p, Category p) => Unital ((->) :: Type -> Type -> Type) () () () (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

introduce :: () -> StrongCategory p () () Source #

(Strong p, Semigroupoid p) => Semigroupal ((->) :: Type -> Type -> Type) (,) (,) (,) (StrongCategory p) Source # 
Instance details

Defined in Data.Bifunctor.Monoidal

Methods

combine :: (StrongCategory p x y, StrongCategory p x' y') -> StrongCategory p (x, x') (y, y') Source #