| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.Graph
Synopsis
- data GRAPH (p :: k +-> j) = GR j k
- data family ProjJ :: forall (p :: k +-> j) -> GRAPH p +-> j
- data family ProjK :: forall (p :: k +-> j) -> GRAPH p +-> k
- data Graph (a :: GRAPH p) (b :: GRAPH p) where
- diagonalElement :: forall {j} {k} (p :: k +-> j) (aj :: j) (ak :: k) (bj :: j) (bk :: k) r. ThinProfunctor p => (('GR aj ak :: GRAPH p) ~> ('GR bj bk :: GRAPH p)) -> ((HasArrow p aj bk, Ob aj, Ob bk) => r) -> r
- graphUniv :: forall {j} {k} (p :: k +-> j). ThinProfunctor p => Iso' p (Rep (ProjJ p) :.: Corep (ProjK p))
- data family ProdAsGraph :: (j, k) +-> GRAPH p
- type ARROW k = GRAPH (Id :: k -> k -> Type)
- type ELEMENTS (f :: k +-> j) = GRAPH (Rep f)
- type COMMA (f :: j +-> k) (g :: k1 +-> k) = GRAPH (Direp f g)
Documentation
data GRAPH (p :: k +-> j) Source Github #
Constructors
| GR j k |
Instances
data family ProjJ :: forall (p :: k +-> j) -> GRAPH p +-> j Source Github #
data family ProjK :: forall (p :: k +-> j) -> GRAPH p +-> k Source Github #
data Graph (a :: GRAPH p) (b :: GRAPH p) where Source Github #
Constructors
| Graph :: forall {k} {k1} {p :: k +-> k1} (aj :: k1) (ak :: k) (bj :: k1) (bk :: k). (HasArrow p aj ak, HasArrow p bj bk) => (aj ~> bj) -> (ak ~> bk) -> Graph ('GR aj ak :: GRAPH p) ('GR bj bk :: GRAPH p) |
Instances
| ThinProfunctor p => Promonad (Graph :: GRAPH p -> GRAPH p -> Type) Source Github # | |
| ThinProfunctor p => Profunctor (Graph :: GRAPH p -> GRAPH p -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Graph Methods dimap :: forall (c :: GRAPH p) (a :: GRAPH p) (b :: GRAPH p) (d :: GRAPH p). (c ~> a) -> (b ~> d) -> Graph a b -> Graph c d Source Github # lmap :: forall (c :: GRAPH p) (a :: GRAPH p) (b :: GRAPH p). (c ~> a) -> Graph a b -> Graph c b Source Github # rmap :: forall (b :: GRAPH p) (d :: GRAPH p) (a :: GRAPH p). (b ~> d) -> Graph a b -> Graph a d Source Github # (\\) :: forall (a :: GRAPH p) (b :: GRAPH p) r. ((Ob a, Ob b) => r) -> Graph a b -> r Source Github # | |
diagonalElement :: forall {j} {k} (p :: k +-> j) (aj :: j) (ak :: k) (bj :: j) (bk :: k) r. ThinProfunctor p => (('GR aj ak :: GRAPH p) ~> ('GR bj bk :: GRAPH p)) -> ((HasArrow p aj bk, Ob aj, Ob bk) => r) -> r Source Github #
A morphism gives two equal ways to compute the "diagonal", which is an element of the profunctor.
graphUniv :: forall {j} {k} (p :: k +-> j). ThinProfunctor p => Iso' p (Rep (ProjJ p) :.: Corep (ProjK p)) Source Github #
data family ProdAsGraph :: (j, k) +-> GRAPH p Source Github #
Instances
| (CategoryOf j, CategoryOf k, CodiscreteProfunctor p) => FunctorForRep (ProdAsGraph :: (j, k) +-> GRAPH p) Source Github # | |
Defined in Proarrow.Category.Instance.Graph | |
| type (ProdAsGraph :: (j, k) +-> GRAPH p) @ ('(a, b) :: (j, k)) Source Github # | |
Defined in Proarrow.Category.Instance.Graph | |