proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Span

Documentation

newtype SPAN k Source Github #

Constructors

SP k 

Instances

Instances details
HasPullbacks k => Monoidal (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.Span

type Unit = 'SP (TerminalObject :: k)

Methods

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

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

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

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

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

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

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

HasPullbacks k => SymMonoidal (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

HasPullbacks k => CopyDiscard (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

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

HasPullbacks k => Hypergraph (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

HasPullbacks k => CategoryOf (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Span

type (~>) = Span :: SPAN k -> SPAN k -> Type
HasPullbacks k => CompactClosed (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

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

HasPullbacks k => StarAutonomous (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

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

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

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

HasPullbacks k => Closed (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

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

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

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

HasPullbacks k => DaggerProfunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

dagger :: forall (a :: SPAN k) (b :: SPAN k). Span a b -> Span b a Source Github #

HasPullbacks k => Promonad (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

id :: forall (a :: SPAN k). Ob a => Span a a Source Github #

(.) :: forall (b :: SPAN k) (c :: SPAN k) (a :: SPAN k). Span b c -> Span a b -> Span a c Source Github #

HasPullbacks k => MonoidalProfunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

par0 :: Span (Unit :: SPAN k) (Unit :: SPAN k) Source Github #

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

HasPullbacks k => Profunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

(\\) :: forall (a :: SPAN k) (b :: SPAN k) r. ((Ob a, Ob b) => r) -> Span 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 #

(HasPullbacks k, Ob a) => Frobenius ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

(HasPullbacks k, Ob a) => Comonoid ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

counit :: 'SP a ~> (Unit :: SPAN k) Source Github #

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

(HasPullbacks k, Ob a) => Monoid ('SP a :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

mempty :: (Unit :: SPAN k) ~> 'SP a Source Github #

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

type UN ('SP :: j -> SPAN j) ('SP k :: SPAN j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

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

Defined in Proarrow.Category.Instance.Span

type Unit = 'SP (TerminalObject :: k)
type (~>) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

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

Defined in Proarrow.Category.Instance.Span

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

Defined in Proarrow.Category.Instance.Span

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

Defined in Proarrow.Category.Instance.Span

type (a :: SPAN k) ~~> (b :: SPAN 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 ('SP a :: SPAN k) ** ('SP b :: SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

type ('SP a :: SPAN k) ** ('SP b :: SPAN k) = 'SP (a && b)

data Span (a :: SPAN k) (b :: SPAN k) where Source Github #

Constructors

Span :: forall {k} (c :: k) (a1 :: k) (b1 :: k). (c ~> a1) -> (c ~> b1) -> Span ('SP a1) ('SP b1) 

Instances

Instances details
HasPullbacks k => DaggerProfunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

dagger :: forall (a :: SPAN k) (b :: SPAN k). Span a b -> Span b a Source Github #

HasPullbacks k => Promonad (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

id :: forall (a :: SPAN k). Ob a => Span a a Source Github #

(.) :: forall (b :: SPAN k) (c :: SPAN k) (a :: SPAN k). Span b c -> Span a b -> Span a c Source Github #

HasPullbacks k => MonoidalProfunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

par0 :: Span (Unit :: SPAN k) (Unit :: SPAN k) Source Github #

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

HasPullbacks k => Profunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

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

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

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

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