| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Promonad.Cont
Description
The continuation promonad: is a continuation transformer Cont r a b(b .
It is strong for the tensor but only premonoidal, as the order of effects matters.~> r) -> (a ~> r)
Documentation
data Cont (r :: k) (a :: k) (b :: k) where Source Github #
An arrow from a to b is a mapping of continuations (b .~> r) -> (a ~> r)
Constructors
| Cont | |
Instances
| Strong (Tensor :: Type -> (Type, Type) -> Type) (Cont r :: Type -> Type -> Type) Source Github # | |
| MonoidalProfunctor (Cont r :: Type -> Type -> Type) Source Github # | Only premonoidal not monoidal. |
| CategoryOf k => Profunctor (Cont r :: k -> k -> Type) Source Github # | |
Defined in Proarrow.Promonad.Cont Methods dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Cont r a b -> Cont r c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: k). (c ~> a) -> Cont r a b -> Cont r c b Source Github # rmap :: forall (b :: k) (d :: k) (a :: k). (b ~> d) -> Cont r a b -> Cont r a d Source Github # (\\) :: forall (a :: k) (b :: k) r0. ((Ob a, Ob b) => r0) -> Cont r a b -> r0 Source Github # | |
| Representable (Cont r :: Type -> Type -> Type) Source Github # | At |
| CategoryOf k => Promonad (Cont r :: k -> k -> Type) Source Github # | |
| HasCoproducts k => MonoidalProfunctor (Coprod (Cont r) :: COPROD k -> COPROD k -> Type) Source Github # | |
Defined in Proarrow.Promonad.Cont | |
| Closed (KLEISLI (Cont r)) Source Github # | |
Defined in Proarrow.Promonad.Cont Methods withObExp :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) r0. (Ob a, Ob b) => (Ob (a ~~> b) => r0) -> r0 Source Github # curry :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Github # apply :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github # (^^^) :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (x :: KLEISLI (Cont r)) (y :: KLEISLI (Cont r)). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Github # | |
| StarAutonomous (KLEISLI (Cont r)) Source Github # | |
Defined in Proarrow.Promonad.Cont Methods withObDual :: forall (a :: KLEISLI (Cont r)) r0. Ob a => (Ob (Dual a) => r0) -> r0 Source Github # dual :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (a ~> b) -> Dual b ~> Dual a Source Github # dualInv :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Github # linDist :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Github # linDistInv :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Github # doubleNeg :: forall (a :: KLEISLI (Cont r)). Ob a => Dual (Dual a) ~> a Source Github # doubleNegInv :: forall (a :: KLEISLI (Cont r)). Ob a => a ~> Dual (Dual a) Source Github # | |
| type (Cont r :: Type -> Type -> Type) % (b :: Type) Source Github # | |
| type (a :: KLEISLI (Cont r)) ~~> (b :: KLEISLI (Cont r)) Source Github # | |
| type Dual ('KL a :: KLEISLI (Cont r)) Source Github # | |