proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Cospan

Documentation

newtype COSPAN k Source Github #

Constructors

CS k 

Instances

Instances details
HasPushouts k => Monoidal (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type Unit = 'CS (InitialObject :: k)

Methods

withOb2 :: forall (a :: COSPAN k) (b :: COSPAN k) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github #

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

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

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

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

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

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

HasPushouts k => SymMonoidal (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

swap :: forall (a :: COSPAN k) (b :: COSPAN k). (Ob a, Ob b) => (a ** b) ~> (b ** a) Source Github #

HasPushouts k => CopyDiscard (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

copy :: forall (a :: COSPAN k). Ob a => a ~> (a ** a) Source Github #

discard :: forall (a :: COSPAN k). Ob a => a ~> (Unit :: COSPAN k) Source Github #

HasPushouts k => Hypergraph (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

HasPushouts k => CategoryOf (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (~>) = Cospan :: COSPAN k -> COSPAN k -> Type
HasPushouts k => CompactClosed (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

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

dualUnit :: Dual (Unit :: COSPAN k) ~> (Unit :: COSPAN k) Source Github #

HasPushouts k => StarAutonomous (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

dual :: forall (a :: COSPAN k) (b :: COSPAN k). (a ~> b) -> Dual b ~> Dual a Source Github #

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

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

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

HasPushouts k => Closed (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

withObExp :: forall (a :: COSPAN k) (b :: COSPAN k) r. (Ob a, Ob b) => (Ob (a ~~> b) => r) -> r Source Github #

curry :: forall (a :: COSPAN k) (b :: COSPAN k) (c :: COSPAN k). (Ob a, Ob b) => ((a ** b) ~> c) -> a ~> (b ~~> c) Source Github #

apply :: forall (a :: COSPAN k) (b :: COSPAN k). (Ob a, Ob b) => ((a ~~> b) ** a) ~> b Source Github #

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

HasPushouts k => DaggerProfunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

dagger :: forall (a :: COSPAN k) (b :: COSPAN k). Cospan a b -> Cospan b a Source Github #

HasPushouts k => Promonad (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

id :: forall (a :: COSPAN k). Ob a => Cospan a a Source Github #

(.) :: forall (b :: COSPAN k) (c :: COSPAN k) (a :: COSPAN k). Cospan b c -> Cospan a b -> Cospan a c Source Github #

HasPushouts k => MonoidalProfunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

par0 :: Cospan (Unit :: COSPAN k) (Unit :: COSPAN k) Source Github #

par :: forall (x1 :: COSPAN k) (x2 :: COSPAN k) (y1 :: COSPAN k) (y2 :: COSPAN k). Cospan x1 x2 -> Cospan y1 y2 -> Cospan (x1 ** y1) (x2 ** y2) Source Github #

HasPushouts k => Profunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

dimap :: forall (c :: COSPAN k) (a :: COSPAN k) (b :: COSPAN k) (d :: COSPAN k). (c ~> a) -> (b ~> d) -> Cospan a b -> Cospan c d Source Github #

(\\) :: forall (a :: COSPAN k) (b :: COSPAN k) r. ((Ob a, Ob b) => r) -> Cospan a b -> r Source Github #

(HasPushouts k, HasPullbacks k) => FunctorForRep (Pullback :: COSPAN k +-> SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

fmap :: forall (a :: COSPAN k) (b :: COSPAN k). (a ~> b) -> ((Pullback :: COSPAN k +-> SPAN k) @ a) ~> ((Pullback :: COSPAN k +-> SPAN k) @ b) Source Github #

(HasPushouts k, HasPullbacks k) => FunctorForRep (Pushout :: SPAN k +-> COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

fmap :: forall (a :: SPAN k) (b :: SPAN k). (a ~> b) -> ((Pushout :: SPAN k +-> COSPAN k) @ a) ~> ((Pushout :: SPAN k +-> COSPAN k) @ b) Source Github #

(HasPushouts k, Ob a) => Frobenius ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

spider :: forall (n :: Nat) (m :: Nat). (SNatI n, SNatI m) => NFold n ('CS a) ~> NFold m ('CS a) Source Github #

(HasPushouts k, Ob a) => Comonoid ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

counit :: 'CS a ~> (Unit :: COSPAN k) Source Github #

comult :: 'CS a ~> ('CS a ** 'CS a) Source Github #

(HasPushouts k, Ob a) => Monoid ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

mempty :: (Unit :: COSPAN k) ~> 'CS a Source Github #

mappend :: ('CS a ** 'CS a) ~> 'CS a Source Github #

type UN ('CS :: j -> COSPAN j) ('CS k :: COSPAN j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type UN ('CS :: j -> COSPAN j) ('CS k :: COSPAN j) = k
type Unit Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type Unit = 'CS (InitialObject :: k)
type (~>) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (~>) = Cospan :: COSPAN k -> COSPAN k -> Type
type Ob (a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type Ob (a :: COSPAN k) = (Is ('CS :: k -> COSPAN k) a, Ob (UN ('CS :: k -> COSPAN k) a))
type Dual (a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type Dual (a :: COSPAN k) = a
type (a :: COSPAN k) ~~> (b :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (a :: COSPAN k) ~~> (b :: COSPAN k) = ExpHG a b
type (Pullback :: COSPAN k +-> SPAN k) @ ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (Pullback :: COSPAN k +-> SPAN k) @ ('CS a :: COSPAN k) = 'SP a
type (Pushout :: SPAN k +-> COSPAN k) @ ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (Pushout :: SPAN k +-> COSPAN k) @ ('SP a :: SPAN k) = 'CS a
type ('CS a :: COSPAN k) ** ('CS b :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type ('CS a :: COSPAN k) ** ('CS b :: COSPAN k) = 'CS (a || b)

data Cospan (a :: COSPAN k) (b :: COSPAN k) where Source Github #

Constructors

Cospan :: forall {k} (c :: k) (a1 :: k) (b1 :: k). (a1 ~> c) -> (b1 ~> c) -> Cospan ('CS a1) ('CS b1) 

Instances

Instances details
HasPushouts k => DaggerProfunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

dagger :: forall (a :: COSPAN k) (b :: COSPAN k). Cospan a b -> Cospan b a Source Github #

HasPushouts k => Promonad (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

id :: forall (a :: COSPAN k). Ob a => Cospan a a Source Github #

(.) :: forall (b :: COSPAN k) (c :: COSPAN k) (a :: COSPAN k). Cospan b c -> Cospan a b -> Cospan a c Source Github #

HasPushouts k => MonoidalProfunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

par0 :: Cospan (Unit :: COSPAN k) (Unit :: COSPAN k) Source Github #

par :: forall (x1 :: COSPAN k) (x2 :: COSPAN k) (y1 :: COSPAN k) (y2 :: COSPAN k). Cospan x1 x2 -> Cospan y1 y2 -> Cospan (x1 ** y1) (x2 ** y2) Source Github #

HasPushouts k => Profunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

dimap :: forall (c :: COSPAN k) (a :: COSPAN k) (b :: COSPAN k) (d :: COSPAN k). (c ~> a) -> (b ~> d) -> Cospan a b -> Cospan c d Source Github #

(\\) :: forall (a :: COSPAN k) (b :: COSPAN k) r. ((Ob a, Ob b) => r) -> Cospan a b -> r Source Github #

arr :: forall k (a :: k) (b :: k). CategoryOf k => (a ~> b) -> Cospan ('CS a) ('CS b) Source Github #

coarr :: forall k (a :: k) (b :: k). CategoryOf k => (a ~> b) -> Cospan ('CS b) ('CS a) Source Github #

data family Pushout :: SPAN k +-> COSPAN k Source Github #

Instances

Instances details
(HasPushouts k, HasPullbacks k) => FunctorForRep (Pushout :: SPAN k +-> COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

fmap :: forall (a :: SPAN k) (b :: SPAN k). (a ~> b) -> ((Pushout :: SPAN k +-> COSPAN k) @ a) ~> ((Pushout :: SPAN k +-> COSPAN k) @ b) Source Github #

type (Pushout :: SPAN k +-> COSPAN k) @ ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (Pushout :: SPAN k +-> COSPAN k) @ ('SP a :: SPAN k) = 'CS a

data family Pullback :: COSPAN k +-> SPAN k Source Github #

Instances

Instances details
(HasPushouts k, HasPullbacks k) => FunctorForRep (Pullback :: COSPAN k +-> SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

fmap :: forall (a :: COSPAN k) (b :: COSPAN k). (a ~> b) -> ((Pullback :: COSPAN k +-> SPAN k) @ a) ~> ((Pullback :: COSPAN k +-> SPAN k) @ b) Source Github #

type (Pullback :: COSPAN k +-> SPAN k) @ ('CS a :: COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (Pullback :: COSPAN k +-> SPAN k) @ ('CS a :: COSPAN k) = 'SP a