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

Proarrow.Category.Instance.IntConstruction

Documentation

data INT k Source Comments #

Constructors

I k k 

Instances

Instances details
(TracedMonoidal k, Ob (Unit :: k)) => Monoidal (INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type Unit = 'I (Unit :: k) (Unit :: k)

Methods

leftUnitor :: forall (a :: INT k). Ob a => ((Unit :: INT k) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: INT k). Ob a => a ~> ((Unit :: INT k) ** a) Source Comments #

rightUnitor :: forall (a :: INT k). Ob a => (a ** (Unit :: INT k)) ~> a Source Comments #

rightUnitorInv :: forall (a :: INT k). Ob a => a ~> (a ** (Unit :: INT k)) Source Comments #

associator :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

(TracedMonoidal k, Ob (Unit :: k)) => SymMonoidal (INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

swap' :: forall (a :: INT k) (a' :: INT k) (b :: INT k) (b' :: INT k). (a ~> a') -> (b ~> b') -> (a ** b) ~> (b' ** a') Source Comments #

TracedMonoidal k => CategoryOf (INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type (~>) = IntConstruction :: INT k -> INT k -> Type
(TracedMonoidal k, Ob (Unit :: k)) => CompactClosed (INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

distribDual :: forall (a :: INT k) (b :: INT k). (Ob a, Ob b) => Dual (a ** b) ~> (Dual a ** Dual b) Source Comments #

dualUnit :: Dual (Unit :: INT k) ~> (Unit :: INT k) Source Comments #

(TracedMonoidal k, Ob (Unit :: k)) => StarAutonomous (INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

dual :: forall (a :: INT k) (b :: INT k). (a ~> b) -> Dual b ~> Dual a Source Comments #

dualInv :: forall (a :: INT k) (b :: INT k). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments #

linDist :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments #

linDistInv :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments #

(TracedMonoidal k, Ob (Unit :: k)) => Closed (INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

curry' :: forall (a :: INT k) (b :: INT k) (c :: INT k). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #

uncurry' :: forall (b :: INT k) (c :: INT k) (a :: INT k). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #

(^^^) :: forall (b :: INT k) (y :: INT k) (x :: INT k) (a :: INT k). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments #

TracedMonoidal k => Promonad (IntConstruction :: INT k -> INT k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

id :: forall (a :: INT k). Ob a => IntConstruction a a Source Comments #

(.) :: forall (b :: INT k) (c :: INT k) (a :: INT k). IntConstruction b c -> IntConstruction a b -> IntConstruction a c Source Comments #

(TracedMonoidal k, Ob (Unit :: k)) => MonoidalProfunctor (IntConstruction :: INT k -> INT k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

par0 :: IntConstruction (Unit :: INT k) (Unit :: INT k) Source Comments #

par :: forall (x1 :: INT k) (x2 :: INT k) (y1 :: INT k) (y2 :: INT k). IntConstruction x1 x2 -> IntConstruction y1 y2 -> IntConstruction (x1 ** y1) (x2 ** y2) Source Comments #

TracedMonoidal k => Profunctor (IntConstruction :: INT k -> INT k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

dimap :: forall (c :: INT k) (a :: INT k) (b :: INT k) (d :: INT k). (c ~> a) -> (b ~> d) -> IntConstruction a b -> IntConstruction c d Source Comments #

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

type Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type Unit = 'I (Unit :: k) (Unit :: k)
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type (~>) = IntConstruction :: INT k -> INT k -> Type
type Ob (a :: INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type Ob (a :: INT k) = (a ~ 'I (IntPlus a) (IntMinus a), Ob (IntPlus a), Ob (IntMinus a))
type (a :: INT k) ** (b :: INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type (a :: INT k) ** (b :: INT k) = 'I (IntPlus a ** IntPlus b) (IntMinus a ** IntMinus b)
type (a :: INT k) ~~> (b :: INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type (a :: INT k) ~~> (b :: INT k) = ExpSA a b
type Dual ('I p n :: INT k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type Dual ('I p n :: INT k) = 'I n p

type family IntPlus (i :: INT k) :: k where ... Source Comments #

Equations

IntPlus ('I a b :: INT k) = a 

type family IntMinus (i :: INT k) :: k where ... Source Comments #

Equations

IntMinus ('I a b :: INT k) = b 

data IntConstruction (a :: INT k) (b :: INT k) where Source Comments #

Constructors

Int :: forall {k} (ap :: k) (am :: k) (bp :: k) (bm :: k). (Ob ap, Ob am, Ob bp, Ob bm) => ((ap ** bm) ~> (am ** bp)) -> IntConstruction ('I ap am) ('I bp bm) 

Instances

Instances details
TracedMonoidal k => Promonad (IntConstruction :: INT k -> INT k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

id :: forall (a :: INT k). Ob a => IntConstruction a a Source Comments #

(.) :: forall (b :: INT k) (c :: INT k) (a :: INT k). IntConstruction b c -> IntConstruction a b -> IntConstruction a c Source Comments #

(TracedMonoidal k, Ob (Unit :: k)) => MonoidalProfunctor (IntConstruction :: INT k -> INT k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

par0 :: IntConstruction (Unit :: INT k) (Unit :: INT k) Source Comments #

par :: forall (x1 :: INT k) (x2 :: INT k) (y1 :: INT k) (y2 :: INT k). IntConstruction x1 x2 -> IntConstruction y1 y2 -> IntConstruction (x1 ** y1) (x2 ** y2) Source Comments #

TracedMonoidal k => Profunctor (IntConstruction :: INT k -> INT k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

dimap :: forall (c :: INT k) (a :: INT k) (b :: INT k) (d :: INT k). (c ~> a) -> (b ~> d) -> IntConstruction a b -> IntConstruction c d Source Comments #

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

toInt :: forall {k} (a :: k) (b :: k). (TracedMonoidal k, Ob (Unit :: k)) => (a ~> b) -> 'I a (Unit :: k) ~> 'I b (Unit :: k) Source Comments #

isoToInt :: forall {k} (a :: k) (b :: k). TracedMonoidal k => (a ~> b) -> (b ~> a) -> 'I a a ~> 'I b b Source Comments #

fromInt :: forall {k} (a :: k) (b :: k) (m :: k). TracedMonoidal k => ('I a m ~> 'I b m) -> a ~> b Source Comments #