Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Category.Monoidal.Action
Synopsis
- class (MonoidalAction m c, MonoidalAction m d, Profunctor p) => Strong m (p :: c +-> d) where
- class (Monoidal m, CategoryOf k, Strong m ((~>) :: CAT k)) => MonoidalAction m k where
- type Act (a :: m) (x :: k) :: k
- withObAct :: forall (a :: m) (x :: k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r
- unitor :: forall (x :: k). Ob x => Act (Unit :: m) x ~> x
- unitorInv :: forall (x :: k). Ob x => x ~> Act (Unit :: m) x
- multiplicator :: forall (a :: m) (b :: m) (x :: k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x
- multiplicatorInv :: forall (a :: m) (b :: m) (x :: k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x)
- class Act a b ~ (a ** b) => ActIsTensor (a :: k) (b :: k)
- class (Act a (Act b c) ~ (a ** (b ** c)), (a ** Act b c) ~ (a ** (b ** c)), Act a (b ** c) ~ (a ** (b ** c))) => ActIsTensor3 (a :: k) (b :: k) (c :: k)
- class (MonoidalAction k k, SymMonoidal k, forall (a :: k) (b :: k). ActIsTensor a b, forall (a :: k) (b :: k) (c :: k). ActIsTensor3 a b c) => SelfAction k
- composeActs :: forall {m} {k} (x :: m) (y :: m) (c :: k) (a :: k) (b :: k). (MonoidalAction m k, Ob x, Ob y, Ob c) => (a ~> Act x b) -> (b ~> Act y c) -> a ~> Act (x ** y) c
- decomposeActs :: forall {m} {k} (x :: m) (y :: m) (c :: k) (a :: k) (b :: k). (MonoidalAction m k, Ob x, Ob y, Ob c) => (Act y c ~> b) -> (Act x b ~> a) -> Act (x ** y) c ~> a
- first' :: forall {k} {p} (c :: k) (a :: k) (b :: k). (SelfAction k, Strong k p, Ob c) => p a b -> p (a ** c) (b ** c)
- second' :: forall {k} {p} (c :: k) (a :: k) (b :: k). (SelfAction k, Strong k p, Ob c) => p a b -> p (c ** a) (c ** b)
- prepar :: forall {k} {p} (a :: k) (b :: k) (c :: k) (d :: k). (SelfAction k, Strong k p, Promonad p) => p a b -> p c d -> p (a ** c) (b ** d)
- strongPar0 :: forall {k} {p} (a :: k). (SelfAction k, Strong k p, MonoidalProfunctor p, Ob a) => p a a
- class (MonoidalAction m c, MonoidalAction m d, Profunctor p) => Costrong m (p :: c +-> d) where
- trace :: forall {k} p (u :: k) (x :: k) (y :: k). (SelfAction k, Costrong k p, Ob x, Ob y, Ob u) => p (x ** u) (y ** u) -> p x y
- class (SelfAction k, Costrong k ((~>) :: CAT k), SymMonoidal k) => TracedMonoidal k
Documentation
class (MonoidalAction m c, MonoidalAction m d, Profunctor p) => Strong m (p :: c +-> d) where Source Comments #
Profuntorial strength for a monoidal action. Gives functorial strength for Star, and functorial costrength for Costar.
Methods
act :: forall (a :: m) (b :: m) (x :: d) (y :: c). (a ~> b) -> p x y -> p (Act a x) (Act b y) Source Comments #
Instances
class (Monoidal m, CategoryOf k, Strong m ((~>) :: CAT k)) => MonoidalAction m k where Source Comments #
Methods
withObAct :: forall (a :: m) (x :: k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #
unitor :: forall (x :: k). Ob x => Act (Unit :: m) x ~> x Source Comments #
unitorInv :: forall (x :: k). Ob x => x ~> Act (Unit :: m) x Source Comments #
multiplicator :: forall (a :: m) (b :: m) (x :: k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments #
multiplicatorInv :: forall (a :: m) (b :: m) (x :: k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #
Instances
MonoidalAction KIND KIND Source Comments # | |||||
Defined in Proarrow.Category.Instance.Cat Associated Types
Methods withObAct :: forall (a :: KIND) (x :: KIND) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: KIND). Ob x => Act (Unit :: KIND) x ~> x Source Comments # unitorInv :: forall (x :: KIND). Ob x => x ~> Act (Unit :: KIND) x Source Comments # multiplicator :: forall (a :: KIND) (b :: KIND) (x :: KIND). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: KIND) (b :: KIND) (x :: KIND). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
MonoidalAction () () Source Comments # | |||||
Defined in Proarrow.Object.BinaryProduct Associated Types
Methods withObAct :: forall (a :: ()) (x :: ()) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: ()). Ob x => Act (Unit :: ()) x ~> x Source Comments # unitorInv :: forall (x :: ()). Ob x => x ~> Act (Unit :: ()) x Source Comments # multiplicator :: forall (a :: ()) (b :: ()) (x :: ()). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: ()) (b :: ()) (x :: ()). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
MonoidalAction Type Type Source Comments # | |||||
Defined in Proarrow.Object.BinaryProduct Associated Types
Methods withObAct :: (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: Ob x => Act (Unit :: Type) x ~> x Source Comments # unitorInv :: Ob x => x ~> Act (Unit :: Type) x Source Comments # multiplicator :: (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
MonoidalAction Type (COPROD Type) Source Comments # | |||||
Defined in Proarrow.Object.BinaryCoproduct Methods withObAct :: forall a (x :: COPROD Type) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: COPROD Type). Ob x => Act (Unit :: Type) x ~> x Source Comments # unitorInv :: forall (x :: COPROD Type). Ob x => x ~> Act (Unit :: Type) x Source Comments # multiplicator :: forall a b (x :: COPROD Type). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall a b (x :: COPROD Type). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
(Strong k p, Promonad p, Monoidal k) => MonoidalAction k (KLEISLI p) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Kleisli Methods withObAct :: forall (a :: k) (x :: KLEISLI p) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: KLEISLI p). Ob x => Act (Unit :: k) x ~> x Source Comments # unitorInv :: forall (x :: KLEISLI p). Ob x => x ~> Act (Unit :: k) x Source Comments # multiplicator :: forall (a :: k) (b :: k) (x :: KLEISLI p). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: k) (b :: k) (x :: KLEISLI p). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
MonoidalAction (COPROD Type) Type Source Comments # | |||||
Defined in Proarrow.Object.BinaryCoproduct Methods withObAct :: forall (a :: COPROD Type) x r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: Ob x => Act (Unit :: COPROD Type) x ~> x Source Comments # unitorInv :: Ob x => x ~> Act (Unit :: COPROD Type) x Source Comments # multiplicator :: forall (a :: COPROD Type) (b :: COPROD Type) x. (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: COPROD Type) (b :: COPROD Type) x. (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
Num a => MonoidalAction (MatK a) (MatK a) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Mat Methods withObAct :: forall (a0 :: MatK a) (x :: MatK a) r. (Ob a0, Ob x) => (Ob (Act a0 x) => r) -> r Source Comments # unitor :: forall (x :: MatK a). Ob x => Act (Unit :: MatK a) x ~> x Source Comments # unitorInv :: forall (x :: MatK a). Ob x => x ~> Act (Unit :: MatK a) x Source Comments # multiplicator :: forall (a0 :: MatK a) (b :: MatK a) (x :: MatK a). (Ob a0, Ob b, Ob x) => Act a0 (Act b x) ~> Act (a0 ** b) x Source Comments # multiplicatorInv :: forall (a0 :: MatK a) (b :: MatK a) (x :: MatK a). (Ob a0, Ob b, Ob x) => Act (a0 ** b) x ~> Act a0 (Act b x) Source Comments # | |||||
MonoidalAction m k => MonoidalAction (OPPOSITE m) (OPPOSITE k) Source Comments # | |||||
Defined in Proarrow.Category.Opposite Methods withObAct :: forall (a :: OPPOSITE m) (x :: OPPOSITE k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: OPPOSITE k). Ob x => Act (Unit :: OPPOSITE m) x ~> x Source Comments # unitorInv :: forall (x :: OPPOSITE k). Ob x => x ~> Act (Unit :: OPPOSITE m) x Source Comments # multiplicator :: forall (a :: OPPOSITE m) (b :: OPPOSITE m) (x :: OPPOSITE k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: OPPOSITE m) (b :: OPPOSITE m) (x :: OPPOSITE k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
HasCoproducts k => MonoidalAction (COPROD k) (COPROD k) Source Comments # | |||||
Defined in Proarrow.Object.BinaryCoproduct Methods withObAct :: forall (a :: COPROD k) (x :: COPROD k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: COPROD k). Ob x => Act (Unit :: COPROD k) x ~> x Source Comments # unitorInv :: forall (x :: COPROD k). Ob x => x ~> Act (Unit :: COPROD k) x Source Comments # multiplicator :: forall (a :: COPROD k) (b :: COPROD k) (x :: COPROD k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: COPROD k) (b :: COPROD k) (x :: COPROD k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
(MonoidalAction m Type, Monoidal (SUBCAT ob)) => MonoidalAction (SUBCAT ob) Type Source Comments # | |||||
Defined in Proarrow.Category.Instance.Sub Methods withObAct :: forall (a :: SUBCAT ob) x r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: Ob x => Act (Unit :: SUBCAT ob) x ~> x Source Comments # unitorInv :: Ob x => x ~> Act (Unit :: SUBCAT ob) x Source Comments # multiplicator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x. (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x. (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
MonoidalAction (Type -> Type) Type Source Comments # | |||||
Defined in Proarrow.Category.Instance.Nat Associated Types
Methods withObAct :: forall (a :: Type -> Type) x r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: Ob x => Act (Unit :: Type -> Type) x ~> x Source Comments # unitorInv :: Ob x => x ~> Act (Unit :: Type -> Type) x Source Comments # multiplicator :: forall (a :: Type -> Type) (b :: Type -> Type) x. (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: Type -> Type) (b :: Type -> Type) x. (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # | |||||
(MonoidalAction n j, MonoidalAction m k) => MonoidalAction (n, m) (j, k) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Product Methods withObAct :: forall (a :: (n, m)) (x :: (j, k)) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments # unitor :: forall (x :: (j, k)). Ob x => Act (Unit :: (n, m)) x ~> x Source Comments # unitorInv :: forall (x :: (j, k)). Ob x => x ~> Act (Unit :: (n, m)) x Source Comments # multiplicator :: forall (a :: (n, m)) (b :: (n, m)) (x :: (j, k)). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments # multiplicatorInv :: forall (a :: (n, m)) (b :: (n, m)) (x :: (j, k)). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments # |
class Act a b ~ (a ** b) => ActIsTensor (a :: k) (b :: k) Source Comments #
Instances
Act a b ~ (a ** b) => ActIsTensor (a :: k) (b :: k) Source Comments # | |
Defined in Proarrow.Category.Monoidal.Action |
class (Act a (Act b c) ~ (a ** (b ** c)), (a ** Act b c) ~ (a ** (b ** c)), Act a (b ** c) ~ (a ** (b ** c))) => ActIsTensor3 (a :: k) (b :: k) (c :: k) Source Comments #
class (MonoidalAction k k, SymMonoidal k, forall (a :: k) (b :: k). ActIsTensor a b, forall (a :: k) (b :: k) (c :: k). ActIsTensor3 a b c) => SelfAction k Source Comments #
Instances
(MonoidalAction k k, SymMonoidal k, forall (a :: k) (b :: k). ActIsTensor a b, forall (a :: k) (b :: k) (c :: k). ActIsTensor3 a b c) => SelfAction k Source Comments # | |
Defined in Proarrow.Category.Monoidal.Action |
composeActs :: forall {m} {k} (x :: m) (y :: m) (c :: k) (a :: k) (b :: k). (MonoidalAction m k, Ob x, Ob y, Ob c) => (a ~> Act x b) -> (b ~> Act y c) -> a ~> Act (x ** y) c Source Comments #
decomposeActs :: forall {m} {k} (x :: m) (y :: m) (c :: k) (a :: k) (b :: k). (MonoidalAction m k, Ob x, Ob y, Ob c) => (Act y c ~> b) -> (Act x b ~> a) -> Act (x ** y) c ~> a Source Comments #
first' :: forall {k} {p} (c :: k) (a :: k) (b :: k). (SelfAction k, Strong k p, Ob c) => p a b -> p (a ** c) (b ** c) Source Comments #
second' :: forall {k} {p} (c :: k) (a :: k) (b :: k). (SelfAction k, Strong k p, Ob c) => p a b -> p (c ** a) (c ** b) Source Comments #
prepar :: forall {k} {p} (a :: k) (b :: k) (c :: k) (d :: k). (SelfAction k, Strong k p, Promonad p) => p a b -> p c d -> p (a ** c) (b ** d) Source Comments #
strongPar0 :: forall {k} {p} (a :: k). (SelfAction k, Strong k p, MonoidalProfunctor p, Ob a) => p a a Source Comments #
class (MonoidalAction m c, MonoidalAction m d, Profunctor p) => Costrong m (p :: c +-> d) where Source Comments #
Methods
coact :: forall (a :: m) (x :: d) (y :: c). (Ob a, Ob x, Ob y) => p (Act a x) (Act a y) -> p x y Source Comments #
Instances
Costrong KIND Cat Source Comments # | |
Costrong () Unit Source Comments # | |
ProdAction k => Costrong k (Fold :: k -> k -> Type) Source Comments # | |
Costrong Type (->) Source Comments # | |
Num a => Costrong (MatK a) (Mat :: MatK a -> MatK a -> Type) Source Comments # | |
Costrong (COPROD LINEAR) (Coprod (Id :: LINEAR -> LINEAR -> Type)) Source Comments # | |
Costrong (COPROD Type) (Coprod (Id :: Type -> Type -> Type)) Source Comments # | |
trace :: forall {k} p (u :: k) (x :: k) (y :: k). (SelfAction k, Costrong k p, Ob x, Ob y, Ob u) => p (x ** u) (y ** u) -> p x y Source Comments #
class (SelfAction k, Costrong k ((~>) :: CAT k), SymMonoidal k) => TracedMonoidal k Source Comments #
Instances
(SelfAction k, Costrong k ((~>) :: CAT k), SymMonoidal k) => TracedMonoidal k Source Comments # | |
Defined in Proarrow.Category.Monoidal.Action |