Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Category.Monoidal
Contents
Documentation
class (CategoryOf k, Ob (Unit :: k)) => Monoidal k where Source Comments #
Methods
par :: forall (a :: k) (b :: k) (c :: k) (d :: k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments #
leftUnitor :: forall (a :: k). Obj a -> ((Unit :: k) ** a) ~> a Source Comments #
leftUnitorInv :: forall (a :: k). Obj a -> a ~> ((Unit :: k) ** a) Source Comments #
rightUnitor :: forall (a :: k). Obj a -> (a ** (Unit :: k)) ~> a Source Comments #
rightUnitorInv :: forall (a :: k). Obj a -> a ~> (a ** (Unit :: k)) Source Comments #
associator :: forall (a :: k) (b :: k) (c :: k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #
associatorInv :: forall (a :: k) (b :: k) (c :: k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #
Instances
Monoidal BOOL Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Bool Associated Types
Methods par :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL) (d :: BOOL). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: BOOL). Obj a -> ((Unit :: BOOL) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: BOOL). Obj a -> a ~> ((Unit :: BOOL) ** a) Source Comments # rightUnitor :: forall (a :: BOOL). Obj a -> (a ** (Unit :: BOOL)) ~> a Source Comments # rightUnitorInv :: forall (a :: BOOL). Obj a -> a ~> (a ** (Unit :: BOOL)) Source Comments # associator :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal CONSTRAINT Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Constraint Associated Types
Methods par :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) (c :: CONSTRAINT) (d :: CONSTRAINT). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: CONSTRAINT). Obj a -> ((Unit :: CONSTRAINT) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: CONSTRAINT). Obj a -> a ~> ((Unit :: CONSTRAINT) ** a) Source Comments # rightUnitor :: forall (a :: CONSTRAINT). Obj a -> (a ** (Unit :: CONSTRAINT)) ~> a Source Comments # rightUnitorInv :: forall (a :: CONSTRAINT). Obj a -> a ~> (a ** (Unit :: CONSTRAINT)) Source Comments # associator :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) (c :: CONSTRAINT). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) (c :: CONSTRAINT). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal LINEAR Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Linear Associated Types
Methods par :: forall (a :: LINEAR) (b :: LINEAR) (c :: LINEAR) (d :: LINEAR). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: LINEAR). Obj a -> ((Unit :: LINEAR) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: LINEAR). Obj a -> a ~> ((Unit :: LINEAR) ** a) Source Comments # rightUnitor :: forall (a :: LINEAR). Obj a -> (a ** (Unit :: LINEAR)) ~> a Source Comments # rightUnitorInv :: forall (a :: LINEAR). Obj a -> a ~> (a ** (Unit :: LINEAR)) Source Comments # associator :: forall (a :: LINEAR) (b :: LINEAR) (c :: LINEAR). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: LINEAR) (b :: LINEAR) (c :: LINEAR). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal Nat Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Simplex Associated Types
Methods par :: forall (a :: Nat) (b :: Nat) (c :: Nat) (d :: Nat). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: Nat). Obj a -> ((Unit :: Nat) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: Nat). Obj a -> a ~> ((Unit :: Nat) ** a) Source Comments # rightUnitor :: forall (a :: Nat). Obj a -> (a ** (Unit :: Nat)) ~> a Source Comments # rightUnitorInv :: forall (a :: Nat). Obj a -> a ~> (a ** (Unit :: Nat)) Source Comments # associator :: forall (a :: Nat) (b :: Nat) (c :: Nat). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: Nat) (b :: Nat) (c :: Nat). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal UNIT Source Comments # | |||||||||
Defined in Proarrow.Object.BinaryProduct Associated Types
Methods par :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT) (d :: UNIT). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: UNIT). Obj a -> ((Unit :: UNIT) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: UNIT). Obj a -> a ~> ((Unit :: UNIT) ** a) Source Comments # rightUnitor :: forall (a :: UNIT). Obj a -> (a ** (Unit :: UNIT)) ~> a Source Comments # rightUnitorInv :: forall (a :: UNIT). Obj a -> a ~> (a ** (Unit :: UNIT)) Source Comments # associator :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal Type Source Comments # | |||||||||
Defined in Proarrow.Object.BinaryProduct Associated Types
Methods par :: (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: Obj a -> ((Unit :: Type) ** a) ~> a Source Comments # leftUnitorInv :: Obj a -> a ~> ((Unit :: Type) ** a) Source Comments # rightUnitor :: Obj a -> (a ** (Unit :: Type)) ~> a Source Comments # rightUnitorInv :: Obj a -> a ~> (a ** (Unit :: Type)) Source Comments # associator :: Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
CategoryOf k => Monoidal (LIST k) Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.List Associated Types
Methods par :: forall (a :: LIST k) (b :: LIST k) (c :: LIST k) (d :: LIST k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: LIST k). Obj a -> ((Unit :: LIST k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: LIST k). Obj a -> a ~> ((Unit :: LIST k) ** a) Source Comments # rightUnitor :: forall (a :: LIST k). Obj a -> (a ** (Unit :: LIST k)) ~> a Source Comments # rightUnitorInv :: forall (a :: LIST k). Obj a -> a ~> (a ** (Unit :: LIST k)) Source Comments # associator :: forall (a :: LIST k) (b :: LIST k) (c :: LIST k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: LIST k) (b :: LIST k) (c :: LIST k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal k => Monoidal (REV k) Source Comments # | |||||||||
Defined in Proarrow.Category.Monoidal.Rev Associated Types
Methods par :: forall (a :: REV k) (b :: REV k) (c :: REV k) (d :: REV k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: REV k). Obj a -> ((Unit :: REV k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: REV k). Obj a -> a ~> ((Unit :: REV k) ** a) Source Comments # rightUnitor :: forall (a :: REV k). Obj a -> (a ** (Unit :: REV k)) ~> a Source Comments # rightUnitorInv :: forall (a :: REV k). Obj a -> a ~> (a ** (Unit :: REV k)) Source Comments # associator :: forall (a :: REV k) (b :: REV k) (c :: REV k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: REV k) (b :: REV k) (c :: REV k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal k => Monoidal (OPPOSITE k) Source Comments # | |||||||||
Defined in Proarrow.Category.Opposite Associated Types
Methods par :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (c :: OPPOSITE k) (d :: OPPOSITE k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: OPPOSITE k). Obj a -> ((Unit :: OPPOSITE k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: OPPOSITE k). Obj a -> a ~> ((Unit :: OPPOSITE k) ** a) Source Comments # rightUnitor :: forall (a :: OPPOSITE k). Obj a -> (a ** (Unit :: OPPOSITE k)) ~> a Source Comments # rightUnitorInv :: forall (a :: OPPOSITE k). Obj a -> a ~> (a ** (Unit :: OPPOSITE k)) Source Comments # associator :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (c :: OPPOSITE k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (c :: OPPOSITE k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
HasCoproducts k => Monoidal (COPROD k) Source Comments # | |||||||||
Defined in Proarrow.Object.BinaryCoproduct Associated Types
Methods par :: forall (a :: COPROD k) (b :: COPROD k) (c :: COPROD k) (d :: COPROD k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: COPROD k). Obj a -> ((Unit :: COPROD k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: COPROD k). Obj a -> a ~> ((Unit :: COPROD k) ** a) Source Comments # rightUnitor :: forall (a :: COPROD k). Obj a -> (a ** (Unit :: COPROD k)) ~> a Source Comments # rightUnitorInv :: forall (a :: COPROD k). Obj a -> a ~> (a ** (Unit :: COPROD k)) Source Comments # associator :: forall (a :: COPROD k) (b :: COPROD k) (c :: COPROD k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: COPROD k) (b :: COPROD k) (c :: COPROD k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
HasProducts k => Monoidal (PROD k) Source Comments # | |||||||||
Defined in Proarrow.Object.BinaryProduct Associated Types
Methods par :: forall (a :: PROD k) (b :: PROD k) (c :: PROD k) (d :: PROD k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: PROD k). Obj a -> ((Unit :: PROD k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: PROD k). Obj a -> a ~> ((Unit :: PROD k) ** a) Source Comments # rightUnitor :: forall (a :: PROD k). Obj a -> (a ** (Unit :: PROD k)) ~> a Source Comments # rightUnitorInv :: forall (a :: PROD k). Obj a -> a ~> (a ** (Unit :: PROD k)) Source Comments # associator :: forall (a :: PROD k) (b :: PROD k) (c :: PROD k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: PROD k) (b :: PROD k) (c :: PROD k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal k => Monoidal [k] Source Comments # | |||||||||
Defined in Proarrow.Category.Monoidal Associated Types
Methods par :: forall (a :: [k]) (b :: [k]) (c :: [k]) (d :: [k]). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: [k]). Obj a -> ((Unit :: [k]) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: [k]). Obj a -> a ~> ((Unit :: [k]) ** a) Source Comments # rightUnitor :: forall (a :: [k]). Obj a -> (a ** (Unit :: [k])) ~> a Source Comments # rightUnitorInv :: forall (a :: [k]). Obj a -> a ~> (a ** (Unit :: [k])) Source Comments # associator :: forall (a :: [k]) (b :: [k]) (c :: [k]). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: [k]) (b :: [k]) (c :: [k]). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
(Monoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => Monoidal (SUBCAT ob) Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Sub Associated Types
Methods par :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob) (d :: SUBCAT ob). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: SUBCAT ob). Obj a -> ((Unit :: SUBCAT ob) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: SUBCAT ob). Obj a -> a ~> ((Unit :: SUBCAT ob) ** a) Source Comments # rightUnitor :: forall (a :: SUBCAT ob). Obj a -> (a ** (Unit :: SUBCAT ob)) ~> a Source Comments # rightUnitorInv :: forall (a :: SUBCAT ob). Obj a -> a ~> (a ** (Unit :: SUBCAT ob)) Source Comments # associator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
(Monoidal j, Monoidal k) => Monoidal (PRO j k) Source Comments # | |||||||||
Defined in Proarrow.Profunctor.Day Associated Types
Methods par :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k) (d :: PRO j k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: PRO j k). Obj a -> ((Unit :: PRO j k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: PRO j k). Obj a -> a ~> ((Unit :: PRO j k) ** a) Source Comments # rightUnitor :: forall (a :: PRO j k). Obj a -> (a ** (Unit :: PRO j k)) ~> a Source Comments # rightUnitorInv :: forall (a :: PRO j k). Obj a -> a ~> (a ** (Unit :: PRO j k)) Source Comments # associator :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: PRO j k) (b :: PRO j k) (c :: PRO j k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
(Monoidal j, Monoidal k) => Monoidal (j, k) Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Product Associated Types
Methods par :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)) (d :: (j, k)). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: (j, k)). Obj a -> ((Unit :: (j, k)) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: (j, k)). Obj a -> a ~> ((Unit :: (j, k)) ** a) Source Comments # rightUnitor :: forall (a :: (j, k)). Obj a -> (a ** (Unit :: (j, k))) ~> a Source Comments # rightUnitorInv :: forall (a :: (j, k)). Obj a -> a ~> (a ** (Unit :: (j, k))) Source Comments # associator :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal (Type -> Type) Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Nat Associated Types
Methods par :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type) (d :: Type -> Type). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: Type -> Type). Obj a -> ((Unit :: Type -> Type) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: Type -> Type). Obj a -> a ~> ((Unit :: Type -> Type) ** a) Source Comments # rightUnitor :: forall (a :: Type -> Type). Obj a -> (a ** (Unit :: Type -> Type)) ~> a Source Comments # rightUnitorInv :: forall (a :: Type -> Type). Obj a -> a ~> (a ** (Unit :: Type -> Type)) Source Comments # associator :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: Type -> Type) (b :: Type -> Type) (c :: Type -> Type). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
(Bicategory kk, Ob0 kk k) => Monoidal (ENDO kk k) Source Comments # | The monoidal subcategory of a bicategory for a single object. | ||||||||
Defined in Proarrow.Category.Monoidal.Endo Associated Types
Methods par :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k) (d :: ENDO kk k). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: ENDO kk k). Obj a -> ((Unit :: ENDO kk k) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: ENDO kk k). Obj a -> a ~> ((Unit :: ENDO kk k) ** a) Source Comments # rightUnitor :: forall (a :: ENDO kk k). Obj a -> (a ** (Unit :: ENDO kk k)) ~> a Source Comments # rightUnitorInv :: forall (a :: ENDO kk k). Obj a -> a ~> (a ** (Unit :: ENDO kk k)) Source Comments # associator :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: ENDO kk k) (b :: ENDO kk k) (c :: ENDO kk k). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # |
class Monoidal k => SymMonoidal k where Source Comments #
Instances
SymMonoidal BOOL Source Comments # | |
SymMonoidal CONSTRAINT Source Comments # | |
Defined in Proarrow.Category.Instance.Constraint | |
SymMonoidal LINEAR Source Comments # | |
SymMonoidal UNIT Source Comments # | |
SymMonoidal Type Source Comments # | |
SymMonoidal k => SymMonoidal (REV k) Source Comments # | |
SymMonoidal k => SymMonoidal (OPPOSITE k) Source Comments # | |
HasCoproducts k => SymMonoidal (COPROD k) Source Comments # | |
HasProducts k => SymMonoidal (PROD k) Source Comments # | |
(SymMonoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => SymMonoidal (SUBCAT ob) Source Comments # | |
(SymMonoidal j, SymMonoidal k) => SymMonoidal (PRO j k) Source Comments # | |
(SymMonoidal j, SymMonoidal k) => SymMonoidal (j, k) Source Comments # | |
swap :: forall {k} (a :: k) (b :: k). (SymMonoidal k, Ob a, Ob b) => (a ** b) ~> (b ** a) Source Comments #
isObPar :: forall {k} (a :: k) (b :: k) r. (Monoidal k, Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Comments #
first :: forall {k} (c :: k) (a :: k) (b :: k). (Monoidal k, Ob c) => (a ~> b) -> (a ** c) ~> (b ** c) Source Comments #
second :: forall {k} (c :: k) (a :: k) (b :: k). (Monoidal k, Ob c) => (a ~> b) -> (c ** a) ~> (c ** b) Source Comments #
class CategoryOf k => IsList (as :: [k]) where Source Comments #
Instances
concatFold :: forall {k} (as :: [k]) (bs :: [k]). (Ob as, Ob bs, Monoidal k) => (Fold as ** Fold bs) ~> Fold (as ++ bs) Source Comments #
splitFold :: forall {k} (as :: [k]) (bs :: [k]). (Ob as, Ob bs, Monoidal k) => Fold (as ++ bs) ~> (Fold as ** Fold bs) Source Comments #
data Strictified (as :: [k]) (bs :: [k]) where Source Comments #
Constructors
Str :: forall {k} (as :: [k]) (bs :: [k]). (Ob as, Ob bs) => (Fold as ~> Fold bs) -> Strictified as bs |
Instances
Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal Methods id :: forall (a :: [k]). Ob a => Strictified a a Source Comments # (.) :: forall (b :: [k]) (c :: [k]) (a :: [k]). Strictified b c -> Strictified a b -> Strictified a c Source Comments # | |
Monoidal k => Profunctor (Strictified :: [k] -> [k] -> Type) Source Comments # | |
Defined in Proarrow.Category.Monoidal Methods dimap :: forall (c :: [k]) (a :: [k]) (b :: [k]) (d :: [k]). (c ~> a) -> (b ~> d) -> Strictified a b -> Strictified c d Source Comments # (\\) :: forall (a :: [k]) (b :: [k]) r. ((Ob a, Ob b) => r) -> Strictified a b -> r Source Comments # |
class (Monoidal j, Monoidal k, Profunctor p) => MonoidalProfunctor (p :: PRO j k) where Source Comments #
Methods
lift0 :: p (Unit :: j) (Unit :: k) Source Comments #
lift2 :: forall (x1 :: j) (x2 :: k) (y1 :: j) (y2 :: k). p x1 x2 -> p y1 y2 -> p (x1 ** y1) (x2 ** y2) Source Comments #
Instances
newtype Hom (a :: k) (b :: k) Source Comments #
Instances
Monoidal k => MonoidalProfunctor (Hom :: k -> k -> Type) Source Comments # | |
CategoryOf k => Profunctor (Hom :: k -> k -> Type) Source Comments # | |
Orphan instances
Monoidal k => CategoryOf [k] Source Comments # | |||||
Associated Types
|