proarrow
Safe HaskellNone
LanguageHaskell2010

Proarrow.Promonad.Cont

Documentation

data Cont (r :: k) (a :: k) (b :: k) where Source Comments #

Constructors

Cont 

Fields

  • :: forall {k} (a :: k) (b :: k) (r :: k). (Ob a, Ob b)
     
  • => { runCont :: (b ~> r) -> a ~> r
     
  •    } -> Cont r a b
     

Instances

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

MonoidalProfunctor (Cont r :: Type -> Type -> Type) Source Comments #

Only premonoidal not monoidal?

Instance details

Defined in Proarrow.Promonad.Cont

Methods

par0 :: Cont r (Unit :: Type) (Unit :: Type) Source Comments #

par :: Cont r x1 x2 -> Cont r y1 y2 -> Cont r (x1 ** y1) (x2 ** y2) Source Comments #

CategoryOf k => Profunctor (Cont r :: k -> k -> Type) Source Comments # 
Instance details

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

(\\) :: forall (a :: k) (b :: k) r0. ((Ob a, Ob b) => r0) -> Cont r a b -> r0 Source Comments #

CategoryOf k => Promonad (Cont r :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

id :: forall (a :: k). Ob a => Cont r a a Source Comments #

(.) :: forall (b :: k) (c :: k) (a :: k). Cont r b c -> Cont r a b -> Cont r a c Source Comments #

HasCoproducts k => MonoidalProfunctor (Coprod (Cont r) :: COPROD k -> COPROD k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

par0 :: Coprod (Cont r) (Unit :: COPROD k) (Unit :: COPROD k) Source Comments #

par :: forall (x1 :: COPROD k) (x2 :: COPROD k) (y1 :: COPROD k) (y2 :: COPROD k). Coprod (Cont r) x1 x2 -> Coprod (Cont r) y1 y2 -> Coprod (Cont r) (x1 ** y1) (x2 ** y2) Source Comments #

StarAutonomous (KLEISLI (Cont r)) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

dual :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (a ~> b) -> Dual b ~> Dual a Source Comments #

dualInv :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments #

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

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

Closed (KLEISLI (Cont r)) Source Comments # 
Instance details

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

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

apply :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Comments #

(^^^) :: 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 Comments #

type (a :: KLEISLI (Cont r)) ~~> (b :: KLEISLI (Cont r)) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Cont

type (a :: KLEISLI (Cont r)) ~~> (b :: KLEISLI (Cont r)) = ExpSA a b
type Dual ('KL a :: KLEISLI (Cont r)) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Cont

type Dual ('KL a :: KLEISLI (Cont r)) = 'KL (a ~~> r) :: KLEISLI (Cont r)