proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Monoidal.Action

Synopsis

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 representable profunctors, and functorial costrength for corepresentable profunctors.

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

Instances details
Profunctor p => Strong () (p :: c +-> d) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

Methods

act :: forall (a :: ()) (b :: ()) (x :: d) (y :: c). (a ~> b) -> p x y -> p (Act a x) (Act b y) Source Comments #

Strong KIND (Id :: KIND -> KIND -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

act :: forall (a :: KIND) (b :: KIND) (x :: KIND) (y :: KIND). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong DOT (Id :: DOT -> DOT -> Type) Source Comments # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

act :: forall (a :: DOT) (b :: DOT) (x :: DOT) (y :: DOT). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Monad m => Strong Type (Kleisli m :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

act :: (a ~> b) -> Kleisli m x y -> Kleisli m (Act a x) (Act b y) Source Comments #

Arrow arr => Strong Type (Arr arr :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

act :: (a ~> b) -> Arr arr x y -> Arr arr (Act a x) (Act b y) Source Comments #

Strong Type (Id :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

act :: (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong Type (Previewing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: (a0 ~> b0) -> Previewing a b x y -> Previewing a b (Act a0 x) (Act b0 y) Source Comments #

Strong Type (Replacing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: (a0 ~> b0) -> Replacing a b x y -> Replacing a b (Act a0 x) (Act b0 y) Source Comments #

Strong Type (Viewing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: (a0 ~> b0) -> Viewing a b x y -> Viewing a b (Act a0 x) (Act b0 y) Source Comments #

Strong Type (Cont r :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

act :: (a ~> b) -> Cont r x y -> Cont r (Act a x) (Act b y) Source Comments #

Strong Type p => Strong Type (Fix p :: c -> c -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

act :: forall a b (x :: c) (y :: c). (a ~> b) -> Fix p x y -> Fix p (Act a x) (Act b y) Source Comments #

Functor f => Strong Type (Star f :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

act :: (a ~> b) -> Star f x y -> Star f (Act a x) (Act b y) Source Comments #

(Ob r, MonoidalAction m k, SymMonoidal m) => Strong m (Reader ('OP r) :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

act :: forall (a :: m) (b :: m) (x :: k) (y :: k). (a ~> b) -> Reader ('OP r) x y -> Reader ('OP r) (Act a x) (Act b y) Source Comments #

(Ob w, MonoidalAction m k, SymMonoidal m) => Strong m (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

act :: forall (a :: m) (b :: m) (x :: k) (y :: k). (a ~> b) -> Writer w x y -> Writer w (Act a x) (Act b y) Source Comments #

(Strong Type p, Strong Type q) => Strong Type (p :+: q :: d -> c -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Coproduct

Methods

act :: forall a b (x :: d) (y :: c). (a ~> b) -> (p :+: q) x y -> (p :+: q) (Act a x) (Act b y) Source Comments #

(Strong Type p, Strong Type q) => Strong Type (p :*: q :: d -> c -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Product

Methods

act :: forall a b (x :: d) (y :: c). (a ~> b) -> (p :*: q) x y -> (p :*: q) (Act a x) (Act b y) Source Comments #

(Strong Type p, Strong Type q) => Strong Type (p :.: q :: d -> c -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

act :: forall a b (x :: d) (y :: c). (a ~> b) -> (p :.: q) x y -> (p :.: q) (Act a x) (Act b y) Source Comments #

IsOptic m c d => Strong m (Optic m a b :: d -> c -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: m) (b0 :: m) (x :: d) (y :: c). (a0 ~> b0) -> Optic m a b x y -> Optic m a b (Act a0 x) (Act b0 y) Source Comments #

MonadPlus m => Strong (COPROD Type) (Kleisli m :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

act :: forall (a :: COPROD Type) (b :: COPROD Type) x y. (a ~> b) -> Kleisli m x y -> Kleisli m (Act a x) (Act b y) Source Comments #

(CoprodAction k, BiCCC k) => Strong (COPROD k) (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

act :: forall (a :: COPROD k) (b :: COPROD k) (x :: k) (y :: k). (a ~> b) -> Fold x y -> Fold (Act a x) (Act b y) Source Comments #

HasCoproducts k => Strong (COPROD k) (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

act :: forall (a :: COPROD k) (b :: COPROD k) (x :: k) (y :: k). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong (COPROD Type) (Previewing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: COPROD Type) (b0 :: COPROD Type) x y. (a0 ~> b0) -> Previewing a b x y -> Previewing a b (Act a0 x) (Act b0 y) Source Comments #

Strong (COPROD Type) (Replacing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: COPROD Type) (b0 :: COPROD Type) x y. (a0 ~> b0) -> Replacing a b x y -> Replacing a b (Act a0 x) (Act b0 y) Source Comments #

Strong (Type -> Type) (Id :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

act :: forall (a :: Type -> Type) (b :: Type -> Type) x y. (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

(MonoidalAction m k, Monoidal (SUBCAT ob)) => Strong (SUBCAT ob) (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

act :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (x :: k) (y :: k). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong (Type -> Type) (Replacing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: Type -> Type) (b0 :: Type -> Type) x y. (a0 ~> b0) -> Replacing a b x y -> Replacing a b (Act a0 x) (Act b0 y) Source Comments #

(Functor f, Applicative f) => Strong (SUBCAT Traversable) (Star (Prelude f) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

act :: forall (a :: SUBCAT Traversable) (b :: SUBCAT Traversable) x y. (a ~> b) -> Star (Prelude f) x y -> Star (Prelude f) (Act a x) (Act b y) Source Comments #

Monad m => Strong (SUBCAT (Algebra m)) (Classifying m a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: SUBCAT (Algebra m)) (b0 :: SUBCAT (Algebra m)) x y. (a0 ~> b0) -> Classifying m a b x y -> Classifying m a b (Act a0 x) (Act b0 y) Source Comments #

Monad m => Strong Type (Updating a b :: Type -> KlCat m -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall a0 b0 x (y :: KlCat m). (a0 ~> b0) -> Updating a b x y -> Updating a b (Act a0 x) (Act b0 y) Source Comments #

Strong Type (Id :: COPROD Type -> COPROD Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

act :: forall a b (x :: COPROD Type) (y :: COPROD Type). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong Type (Id :: k -> k -> Type) => Strong Type (Id :: LIST k -> LIST k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

act :: forall a b (x :: LIST k) (y :: LIST k). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong Type p => Strong Type (List p :: LIST k -> LIST j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

act :: forall a b (x :: LIST k) (y :: LIST j). (a ~> b) -> List p x y -> List p (Act a x) (Act b y) Source Comments #

Num a => Strong (MatK a) (Id :: MatK a -> MatK a -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

act :: forall (a0 :: MatK a) (b :: MatK a) (x :: MatK a) (y :: MatK a). (a0 ~> b) -> Id x y -> Id (Act a0 x) (Act b y) Source Comments #

Strong k (Id :: m -> m -> Type) => Strong (OPPOSITE k) (Id :: OPPOSITE m -> OPPOSITE m -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

act :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (x :: OPPOSITE m) (y :: OPPOSITE m). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

Strong k2 p => Strong (OPPOSITE k2) (Op p :: OPPOSITE j -> OPPOSITE k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

act :: forall (a :: OPPOSITE k2) (b :: OPPOSITE k2) (x :: OPPOSITE j) (y :: OPPOSITE k1). (a ~> b) -> Op p x y -> Op p (Act a x) (Act b y) Source Comments #

(Promonad p, MonoidalProfunctor p) => Strong Type (Id :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

act :: forall a b (x :: KLEISLI p) (y :: KLEISLI p). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

(Strong m (Id :: p -> p -> Type), Strong n (Id :: q -> q -> Type)) => Strong (m, n) (Id :: (p, q) -> (p, q) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

Methods

act :: forall (a :: (m, n)) (b :: (m, n)) (x :: (p, q)) (y :: (p, q)). (a ~> b) -> Id x y -> Id (Act a x) (Act b y) Source Comments #

(Strong m p, Strong m' q) => Strong (m, m') (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

Methods

act :: forall (a :: (m, m')) (b :: (m, m')) (x :: (k1, k2)) (y :: (j1, j2)). (a ~> b) -> (p :**: q) x y -> (p :**: q) (Act a x) (Act b y) Source Comments #

actHom :: forall m k (a :: m) (b :: m) (x :: k) (y :: k). MonoidalAction m k => (a ~> b) -> (x ~> y) -> Act a x ~> Act b y Source Comments #

class (Monoidal m, CategoryOf k, Strong m (Id :: k -> k -> Type)) => MonoidalAction m k where Source Comments #

Associated Types

type Act (a :: m) (x :: k) :: k 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

Instances details
MonoidalAction KIND KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type Act (a :: KIND) (x :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Act (a :: KIND) (x :: KIND) = a ** x

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 DOT DOT Source Comments # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Associated Types

type Act (a :: DOT) (x :: DOT) 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

type Act (a :: DOT) (x :: DOT) = a ** x

Methods

withObAct :: forall (a :: DOT) (x :: DOT) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #

unitor :: forall (x :: DOT). Ob x => Act (Unit :: DOT) x ~> x Source Comments #

unitorInv :: forall (x :: DOT). Ob x => x ~> Act (Unit :: DOT) x Source Comments #

multiplicator :: forall (a :: DOT) (b :: DOT) (x :: DOT). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments #

multiplicatorInv :: forall (a :: DOT) (b :: DOT) (x :: DOT). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #

CategoryOf k => MonoidalAction () k Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

Methods

withObAct :: forall (a :: ()) (x :: k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #

unitor :: forall (x :: k). Ob x => Act (Unit :: ()) x ~> x Source Comments #

unitorInv :: forall (x :: k). Ob x => x ~> Act (Unit :: ()) x Source Comments #

multiplicator :: forall (a :: ()) (b :: ()) (x :: k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments #

multiplicatorInv :: forall (a :: ()) (b :: ()) (x :: k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #

MonoidalAction Type Type Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type Act (p :: Type) (x :: Type) 
Instance details

Defined in Proarrow.Object.BinaryProduct

type Act (p :: Type) (x :: Type) = p ** x

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 # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type Act (p :: Type) ('COPR x :: COPROD Type) 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type Act (p :: Type) ('COPR x :: COPROD Type) = 'COPR (p ** x)

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 #

(MonoidalAction Type k, Strong Type (Id :: k -> k -> Type)) => MonoidalAction Type (LIST k) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

withObAct :: forall a (x :: LIST k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #

unitor :: forall (x :: LIST k). Ob x => Act (Unit :: Type) x ~> x Source Comments #

unitorInv :: forall (x :: LIST k). Ob x => x ~> Act (Unit :: Type) x Source Comments #

multiplicator :: forall a b (x :: LIST k). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments #

multiplicatorInv :: forall a b (x :: LIST k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #

(Promonad p, MonoidalProfunctor p) => MonoidalAction Type (KLEISLI p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

withObAct :: forall a (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 :: Type) x ~> x Source Comments #

unitorInv :: forall (x :: KLEISLI p). Ob x => x ~> Act (Unit :: Type) x Source Comments #

multiplicator :: forall a b (x :: KLEISLI p). (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments #

multiplicatorInv :: forall a b (x :: KLEISLI p). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #

HasCoproducts k => MonoidalAction (COPROD k) k Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

withObAct :: forall (a :: COPROD k) (x :: k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #

unitor :: forall (x :: k). Ob x => Act (Unit :: COPROD k) x ~> x Source Comments #

unitorInv :: forall (x :: k). Ob x => x ~> Act (Unit :: COPROD k) x Source Comments #

multiplicator :: forall (a :: COPROD k) (b :: COPROD k) (x :: 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 :: k). (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 # 
Instance details

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 # 
Instance details

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 #

(MonoidalAction m k, Monoidal (SUBCAT ob)) => MonoidalAction (SUBCAT ob) k Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

withObAct :: forall (a :: SUBCAT ob) (x :: k) r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #

unitor :: forall (x :: k). Ob x => Act (Unit :: SUBCAT ob) x ~> x Source Comments #

unitorInv :: forall (x :: k). Ob x => x ~> Act (Unit :: SUBCAT ob) x Source Comments #

multiplicator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (x :: k). (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 :: k). (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #

MonoidalAction (Type -> Type) Type Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type Act (p :: Type -> Type) (x :: Type) 
Instance details

Defined in Proarrow.Category.Instance.Nat

type Act (p :: Type -> Type) (x :: Type) = p x

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 # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

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 (MonoidalAction m k, SymMonoidal m) => SymMonoidalAction m k Source Comments #

Instances

Instances details
(MonoidalAction m k, SymMonoidal m) => SymMonoidalAction m k Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

class Act a b ~ (a ** b) => ActIsTensor (a :: k) (b :: k) Source Comments #

Instances

Instances details
Act a b ~ (a ** b) => ActIsTensor (a :: k) (b :: k) Source Comments # 
Instance details

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 #

Instances

Instances details
(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 # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

class (SymMonoidalAction k 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

Instances details
(SymMonoidalAction k k, forall (a :: k) (b :: k). ActIsTensor a b, forall (a :: k) (b :: k) (c :: k). ActIsTensor3 a b c) => SelfAction k Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

toSelfAct :: forall {k} (a :: k) (b :: k). (SelfAction k, Ob a, Ob b) => (a ** b) ~> Act a b Source Comments #

fromSelfAct :: forall {k} (a :: k) (b :: k). (SelfAction k, Ob a, Ob b) => Act a b ~> (a ** b) Source Comments #

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 #

strength :: forall {k1} {k2} {m} (p :: k1 +-> k2) (a :: m) (b :: k1). (Representable p, Strong m p, Ob a, Ob b) => Act a (p % b) ~> (p % Act a b) Source Comments #

If a strong profunctor is representable, we get the usual strength for the represented functor.

costrength :: forall {k1} {k2} {m} (p :: k1 +-> k2) (a :: m) (b :: k2). (Corepresentable p, Strong m p, Ob a, Ob b) => (p %% Act a b) ~> Act a (p %% b) Source Comments #

If a strong profunctor is corepresentable, we get the usual costrength for the represented functor.

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 #

This is not monoidal par but premonoidal, i.e. no sliding. So with `prepar f g` the effects of f happen before the effects of g. p needs to be a commutative promonad for this to be monoidal par.

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

Instances details
Costrong KIND Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

coact :: forall (a :: KIND) (x :: KIND) (y :: KIND). (Ob a, Ob x, Ob y) => Cat (Act a x) (Act a y) -> Cat x y Source Comments #

Costrong DOT Dot Source Comments # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

coact :: forall (a :: DOT) (x :: DOT) (y :: DOT). (Ob a, Ob x, Ob y) => Dot (Act a x) (Act a y) -> Dot x y Source Comments #

MonadFix m => Costrong Type (Kleisli m :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

coact :: (Ob a, Ob x, Ob y) => Kleisli m (Act a x) (Act a y) -> Kleisli m x y Source Comments #

ArrowLoop arr => Costrong Type (Arr arr :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

coact :: (Ob a, Ob x, Ob y) => Arr arr (Act a x) (Act a y) -> Arr arr x y Source Comments #

ProdAction k => Costrong k (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

coact :: forall (a :: k) (x :: k) (y :: k). (Ob a, Ob x, Ob y) => Fold (Act a x) (Act a y) -> Fold x y Source Comments #

Costrong Type (->) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

coact :: (Ob a, Ob x, Ob y) => (Act a x -> Act a y) -> x -> y Source Comments #

Costrong (COPROD LINEAR) Linear Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

coact :: forall (a :: COPROD LINEAR) (x :: LINEAR) (y :: LINEAR). (Ob a, Ob x, Ob y) => Linear (Act a x) (Act a y) -> Linear x y Source Comments #

Costrong (COPROD Type) (Id :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

coact :: forall (a :: COPROD Type) x y. (Ob a, Ob x, Ob y) => Id (Act a x) (Act a y) -> Id x y Source Comments #

Num a => Costrong (MatK a) (Mat :: MatK a -> MatK a -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

coact :: forall (a0 :: MatK a) (x :: MatK a) (y :: MatK a). (Ob a0, Ob x, Ob y) => Mat (Act a0 x) (Act a0 y) -> Mat x y 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)) => TracedMonoidal k Source Comments #

Instances

Instances details
(SelfAction k, Costrong k ((~>) :: CAT k)) => TracedMonoidal k Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Action