proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Squares.Relative

Synopsis

Documentation

unit :: forall {k} {kk :: k -> k -> Type} {a :: k} {e :: k} {j :: kk e a} {t :: kk a e}. (Equipment kk, Monad j t, IsTight t) => Sq ('Nil :: Path kk a a) (t '::: (j '::: ('Nil :: Path kk a a))) ('Nil :: Path kk a a) ('Nil :: Path kk a a) Source Comments #

The unit square for a j-relative monad t.

A-----A
|  /--j
|  @  |
|  \->t
A-----A

mult :: forall {k} {kk :: k -> k -> Type} {a :: k} {e :: k} {j :: kk e a} {t :: kk a e} (t' :: kk e a). (Equipment kk, Monad j t, TightPair t t') => Sq (t '::: (j '::: ('Nil :: Path kk a a))) (t '::: (t' '::: ('Nil :: Path kk a a))) ('Nil :: Path kk a a) ('Nil :: Path kk a a) Source Comments #

The multiplication square for a j-relative monad t.

A-------A
j--\ /-<t
|   @   |
t>-/ \->t
A-------A

leftAdjunct :: forall {k} {kk :: k -> k -> Type} {a :: k} {c :: k} {e :: k} {j :: kk e a} {l :: kk a c} {l' :: kk c a} {r :: kk c e}. (Equipment kk, Adjunction j l r, IsTight r, TightPair l l') => Sq (l' '::: ('Nil :: Path kk a a)) (r '::: (j '::: ('Nil :: Path kk a a))) ('Nil :: Path kk a a) ('Nil :: Path kk c c) Source Comments #

j-relative adjunction

A-----A
|  /--j
l<-@  |
|  \->r
C-----C

rightAdjunct :: forall {k} {kk :: k -> k -> Type} {a :: k} {c :: k} {e :: k} {j :: kk e a} {l :: kk a c} {l' :: kk c a} {r :: kk c e}. (Equipment kk, Adjunction j l r, IsTight r, TightPair l l') => Sq (r '::: (j '::: ('Nil :: Path kk a a))) (l' '::: ('Nil :: Path kk a a)) ('Nil :: Path kk a a) ('Nil :: Path kk c c) Source Comments #

j-relative adjunction, other direction

A-----A
j--\  |
|  @<-l
r->/  |
C-----C