proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Category.Monoidal.Action

Synopsis

Documentation

class (MonoidalAction m c, MonoidalAction m' d, Profunctor p) => Strong (w :: m +-> m') (p :: c +-> d) where Source Comments #

Weighted strength for a monoidal action. Usually this is used unweighted, where w is an arrow.

Methods

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

Instances

Instances details
Strong Unit Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

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

Strong (->) (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 (->) (Setting a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

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

Strong (->) (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 (->) (->) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

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

Functor f => Strong (->) (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 #

Monad m => Strong (->) (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 (->) (Previewing a b :: COPROD Type -> COPROD Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

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

Strong (->) (Coprod (->)) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

(Strong w p, Strong ((~>) :: CAT k) p, Promonad p, Monoidal k) => Strong (w :: k +-> k) (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

act :: forall (a :: k) (b :: k) (x :: KLEISLI p) (y :: KLEISLI p). w a b -> Kleisli x y -> Kleisli (Act a x) (Act b y) Source Comments #

Strong (Coprod (->)) (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. Coprod (->) a0 b0 -> Replacing a b x y -> Replacing a b (Act a0 x) (Act b0 y) Source Comments #

Strong (Coprod (->)) (Setting 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. Coprod (->) a0 b0 -> Setting a b x y -> Setting a b (Act a0 x) (Act b0 y) Source Comments #

Strong (Coprod (->)) (->) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

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

Strong (Coprod (->)) (Coprod (->)) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

Strong (Nat :: (Type -> Type) -> (Type -> 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. Nat a0 b0 -> Replacing a b x y -> Replacing a b (Act a0 x) (Act b0 y) Source Comments #

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

Defined in Proarrow.Category.Instance.Nat

Methods

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

(Strong w p, Monoidal (SUBCAT ob)) => Strong (Sub w :: SUBCAT ob -> SUBCAT ob -> Type) (p :: Type +-> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

act :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x y. Sub w a b -> p x y -> p (Act a x) (Act b y) Source Comments #

Monad m => Strong (Sub (->) :: SUBCAT (Algebra m) -> SUBCAT (Algebra m) -> Type) (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. Sub (->) a0 b0 -> Classifying m a b x y -> Classifying m a b (Act a0 x) (Act b0 y) Source Comments #

(Strong v p, Strong w q) => Strong (v :**: w :: (k4, k6) -> (j4, j6) -> Type) (p :**: q :: (k5, k7) -> (j5, j7) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Product

Methods

act :: forall (a :: (k4, k6)) (b :: (j4, j6)) (x :: (k5, k7)) (y :: (j5, j7)). (v :**: w) a b -> (p :**: q) x y -> (p :**: q) (Act a x) (Act b y) Source Comments #

class (Monoidal m, CategoryOf k, Strong ((~>) :: CAT m) ((~>) :: CAT k)) => MonoidalAction m k where Source Comments #

Associated Types

type Act (a :: m) (x :: k) :: k Source Comments #

Methods

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

Defined in Proarrow.Object.BinaryProduct

Associated Types

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

Defined in Proarrow.Object.BinaryProduct

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

Methods

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

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

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 ((~>) :: CAT k) p, Promonad p, Monoidal k) => MonoidalAction k (KLEISLI p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

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

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

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

Defined in Proarrow.Object.BinaryCoproduct

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

Methods

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 #

MonoidalAction (COPROD Type) (COPROD Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

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

Defined in Proarrow.Object.BinaryCoproduct

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

Methods

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

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

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

Defined in Proarrow.Category.Instance.Sub

Methods

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

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.Instance.Product

Methods

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 #

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 #