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

Proarrow.Promonad.Cont

Documentation

newtype Cont r a b Source Comments #

Constructors

Cont 

Fields

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 #

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

Defined in Proarrow.Promonad.Cont

Methods

dimap :: (c ~> a) -> (b ~> d) -> Cont r a b -> Cont r c d Source Comments #

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

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

Defined in Proarrow.Promonad.Cont

Methods

id :: Ob a => Cont r a a Source Comments #

(.) :: Cont r b c -> Cont r a b -> Cont r a c 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 #

uncurry :: forall (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)) (a :: KLEISLI (Cont r)). (Ob b, Ob c) => (a ~> (b ~~> c)) -> (a ** b) ~> c 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)