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

Proarrow.Category.Instance.Kleisli

Documentation

newtype KLEISLI (p :: CAT k) Source Comments #

Constructors

KL k 

Instances

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

tambara :: forall x x' a0 (b0 :: KlCat m). (x -> x') -> Updating a b a0 b0 -> Updating a b (Act x a0) (Act x' b0) Source Comments #

Monad m => MonoidalAction Type (KlCat m) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall p q (x :: KlCat m) (y :: KlCat m). (p ~> q) -> (x ~> y) -> Act p x ~> Act q y Source Comments #

unitor :: forall (x :: KlCat m). Obj x -> Act (Unit :: Type) x ~> x Source Comments #

unitorInv :: forall (x :: KlCat m). Obj x -> x ~> Act (Unit :: Type) x Source Comments #

multiplicator :: forall p q (x :: KlCat m). Obj p -> Obj q -> Obj x -> Act p (Act q x) ~> Act (p ** q) x Source Comments #

multiplicatorInv :: forall p q (x :: KlCat m). Obj p -> Obj q -> Obj x -> Act (p ** q) x ~> Act p (Act q x) Source Comments #

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall c a0 (b0 :: KlCat m) (d :: KlCat m). (c ~> a0) -> (b0 ~> d) -> Updating a b a0 b0 -> Updating a b c d Source Comments #

(\\) :: forall a0 (b0 :: KlCat m) r. ((Ob a0, Ob b0) => r) -> Updating a b a0 b0 -> r Source Comments #

Promonad p => Profunctor (KleisliForget p :: j -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: j) (a :: j) (b :: KLEISLI p) (d :: KLEISLI p). (c ~> a) -> (b ~> d) -> KleisliForget p a b -> KleisliForget p c d Source Comments #

(\\) :: forall (a :: j) (b :: KLEISLI p) r. ((Ob a, Ob b) => r) -> KleisliForget p a b -> r Source Comments #

Promonad p => Adjunction (KleisliFree p :: KLEISLI p -> k -> Type) (KleisliForget p :: k -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

unit :: forall (a :: k). Ob a => (KleisliForget p :.: KleisliFree p) a a Source Comments #

counit :: (KleisliFree p :.: KleisliForget p) :~> ((~>) :: CAT (KLEISLI p)) Source Comments #

Promonad p => CategoryOf (KLEISLI p) Source Comments #

Every promonad makes a category.

Instance details

Defined in Proarrow.Category.Instance.Kleisli

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

type (~>) = Kleisli :: KLEISLI p -> KLEISLI p -> Type
Promonad p => Profunctor (KleisliFree p :: KLEISLI p -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: KLEISLI p) (a :: KLEISLI p) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> KleisliFree p a b -> KleisliFree p c d Source Comments #

(\\) :: forall (a :: KLEISLI p) (b :: k) r. ((Ob a, Ob b) => r) -> KleisliFree p a b -> r Source Comments #

Promonad p => Promonad (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

id :: forall (a :: KLEISLI p). Ob a => Kleisli a a Source Comments #

(.) :: forall (b :: KLEISLI p) (c :: KLEISLI p) (a :: KLEISLI p). Kleisli b c -> Kleisli a b -> Kleisli a c Source Comments #

Promonad p => Profunctor (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: KLEISLI p) (a :: KLEISLI p) (b :: KLEISLI p) (d :: KLEISLI p). (c ~> a) -> (b ~> d) -> Kleisli a b -> Kleisli c d Source Comments #

(\\) :: forall (a :: KLEISLI p) (b :: KLEISLI p) r. ((Ob a, Ob b) => r) -> Kleisli a b -> r Source Comments #

type Act (p :: Type) ('KL x :: KLEISLI (Star (Prelude m))) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

type Act (p :: Type) ('KL x :: KLEISLI (Star (Prelude m))) = 'KL (p ** x) :: KLEISLI (Star (Prelude m))
type UN ('KL :: j -> KLEISLI p) ('KL k :: KLEISLI p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

type UN ('KL :: j -> KLEISLI p) ('KL k :: KLEISLI p) = k
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

type (~>) = Kleisli :: KLEISLI p -> KLEISLI p -> Type
type Ob (a :: KLEISLI p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

type Ob (a :: KLEISLI p) = (Is ('KL :: k -> KLEISLI p) a, Ob (UN ('KL :: k -> KLEISLI p) a))

data Kleisli (a :: KLEISLI p) (b :: KLEISLI p) where Source Comments #

Constructors

Kleisli :: forall {k} (p :: CAT k) (a1 :: k) (b1 :: k). p a1 b1 -> Kleisli ('KL a1 :: KLEISLI p) ('KL b1 :: KLEISLI p) 

Instances

Instances details
Promonad p => Promonad (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

id :: forall (a :: KLEISLI p). Ob a => Kleisli a a Source Comments #

(.) :: forall (b :: KLEISLI p) (c :: KLEISLI p) (a :: KLEISLI p). Kleisli b c -> Kleisli a b -> Kleisli a c Source Comments #

Promonad p => Profunctor (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: KLEISLI p) (a :: KLEISLI p) (b :: KLEISLI p) (d :: KLEISLI p). (c ~> a) -> (b ~> d) -> Kleisli a b -> Kleisli c d Source Comments #

(\\) :: forall (a :: KLEISLI p) (b :: KLEISLI p) r. ((Ob a, Ob b) => r) -> Kleisli a b -> r Source Comments #

data KleisliFree (p :: PRO k k) (a :: KLEISLI p) (b :: k) where Source Comments #

Constructors

KleisliFree :: forall {k} (p :: PRO k k) (a1 :: k) (b :: k). p a1 b -> KleisliFree p ('KL a1 :: KLEISLI p) b 

Instances

Instances details
Promonad p => Adjunction (KleisliFree p :: KLEISLI p -> k -> Type) (KleisliForget p :: k -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

unit :: forall (a :: k). Ob a => (KleisliForget p :.: KleisliFree p) a a Source Comments #

counit :: (KleisliFree p :.: KleisliForget p) :~> ((~>) :: CAT (KLEISLI p)) Source Comments #

Promonad p => Profunctor (KleisliFree p :: KLEISLI p -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: KLEISLI p) (a :: KLEISLI p) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> KleisliFree p a b -> KleisliFree p c d Source Comments #

(\\) :: forall (a :: KLEISLI p) (b :: k) r. ((Ob a, Ob b) => r) -> KleisliFree p a b -> r Source Comments #

data KleisliForget (p :: PRO k k) (a :: k) (b :: KLEISLI p) where Source Comments #

Constructors

KleisliForget :: forall {k} (p :: PRO k k) (a :: k) (b1 :: k). p a b1 -> KleisliForget p a ('KL b1 :: KLEISLI p) 

Instances

Instances details
Promonad p => Profunctor (KleisliForget p :: j -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: j) (a :: j) (b :: KLEISLI p) (d :: KLEISLI p). (c ~> a) -> (b ~> d) -> KleisliForget p a b -> KleisliForget p c d Source Comments #

(\\) :: forall (a :: j) (b :: KLEISLI p) r. ((Ob a, Ob b) => r) -> KleisliForget p a b -> r Source Comments #

Promonad p => Adjunction (KleisliFree p :: KLEISLI p -> k -> Type) (KleisliForget p :: k -> KLEISLI p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

unit :: forall (a :: k). Ob a => (KleisliForget p :.: KleisliFree p) a a Source Comments #

counit :: (KleisliFree p :.: KleisliForget p) :~> ((~>) :: CAT (KLEISLI p)) Source Comments #