proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Ap

Documentation

data AP (f :: Type -> Type) k Source Comments #

Constructors

A k 

Instances

Instances details
(Applicative f, CategoryOf k) => CategoryOf (AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Ap

type (~>) = Ap ((~>) :: CAT k) :: AP f k -> AP f k -> Type
(Applicative f, HasBinaryCoproducts k) => HasBinaryCoproducts (AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

withObCoprod :: forall (a :: AP f k) (b :: AP f k) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments #

lft :: forall (a :: AP f k) (b :: AP f k). (Ob a, Ob b) => a ~> (a || b) Source Comments #

rgt :: forall (a :: AP f k) (b :: AP f k). (Ob a, Ob b) => b ~> (a || b) Source Comments #

(|||) :: forall (x :: AP f k) (a :: AP f k) (y :: AP f k). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments #

(+++) :: forall (a :: AP f k) (b :: AP f k) (x :: AP f k) (y :: AP f k). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments #

(Applicative f, HasBinaryProducts k) => HasBinaryProducts (AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

withObProd :: forall (a :: AP f k) (b :: AP f k) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Comments #

fst :: forall (a :: AP f k) (b :: AP f k). (Ob a, Ob b) => (a && b) ~> a Source Comments #

snd :: forall (a :: AP f k) (b :: AP f k). (Ob a, Ob b) => (a && b) ~> b Source Comments #

(&&&) :: forall (a :: AP f k) (x :: AP f k) (y :: AP f k). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments #

(***) :: forall (a :: AP f k) (b :: AP f k) (x :: AP f k) (y :: AP f k). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments #

(Applicative f, HasInitialObject k) => HasInitialObject (AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Ap

type InitialObject = 'A (InitialObject :: k) :: AP f k

Methods

initiate :: forall (a :: AP f k). Ob a => (InitialObject :: AP f k) ~> a Source Comments #

(Applicative f, HasTerminalObject k) => HasTerminalObject (AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Ap

type TerminalObject = 'A (TerminalObject :: k) :: AP f k

Methods

terminate :: forall (a :: AP f k). Ob a => a ~> (TerminalObject :: AP f k) Source Comments #

(Applicative f, Profunctor p) => Profunctor (Ap p :: AP f k -> AP f j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

dimap :: forall (c :: AP f k) (a :: AP f k) (b :: AP f j) (d :: AP f j). (c ~> a) -> (b ~> d) -> Ap p a b -> Ap p c d Source Comments #

(\\) :: forall (a :: AP f k) (b :: AP f j) r. ((Ob a, Ob b) => r) -> Ap p a b -> r Source Comments #

(Applicative f, Promonad p) => Promonad (Ap p :: AP f k -> AP f k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

id :: forall (a :: AP f k). Ob a => Ap p a a Source Comments #

(.) :: forall (b :: AP f k) (c :: AP f k) (a :: AP f k). Ap p b c -> Ap p a b -> Ap p a c Source Comments #

type UN ('A :: j -> AP f j) ('A k :: AP f j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type UN ('A :: j -> AP f j) ('A k :: AP f j) = k
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type (~>) = Ap ((~>) :: CAT k) :: AP f k -> AP f k -> Type
type InitialObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type InitialObject = 'A (InitialObject :: k) :: AP f k
type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type TerminalObject = 'A (TerminalObject :: k) :: AP f k
type Ob (a :: AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type Ob (a :: AP f k) = (Is ('A :: k -> AP f k) a, Ob (UN ('A :: k -> AP f k) a))
type (a :: AP f k) || (b :: AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type (a :: AP f k) || (b :: AP f k) = 'A (UN ('A :: k -> AP f k) a || UN ('A :: k -> AP f k) b) :: AP f k
type (a :: AP f k) && (b :: AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type (a :: AP f k) && (b :: AP f k) = 'A (UN ('A :: k -> AP f k) a && UN ('A :: k -> AP f k) b) :: AP f k

data Ap (p :: j +-> k) (a :: AP f k) (b :: AP f j) where Source Comments #

Constructors

Ap 

Fields

  • :: forall {k} {j} (a1 :: k) (b1 :: j) (f :: Type -> Type) (p :: j +-> k). (Ob a1, Ob b1)
     
  • => { unAp :: f (p a1 b1)
     
  •    } -> Ap p ('A a1 :: AP f k) ('A b1 :: AP f j)
     

Instances

Instances details
(Applicative f, Profunctor p) => Profunctor (Ap p :: AP f k -> AP f j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

dimap :: forall (c :: AP f k) (a :: AP f k) (b :: AP f j) (d :: AP f j). (c ~> a) -> (b ~> d) -> Ap p a b -> Ap p c d Source Comments #

(\\) :: forall (a :: AP f k) (b :: AP f j) r. ((Ob a, Ob b) => r) -> Ap p a b -> r Source Comments #

(Applicative f, Promonad p) => Promonad (Ap p :: AP f k -> AP f k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

id :: forall (a :: AP f k). Ob a => Ap p a a Source Comments #

(.) :: forall (b :: AP f k) (c :: AP f k) (a :: AP f k). Ap p b c -> Ap p a b -> Ap p a c Source Comments #