Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data NatTr c1 c2 f g where Source
NatTr :: (Object (NatTr c1 c2) f, Object (NatTr c1 c2) g) => (forall a. Object c1 a => Tagged a (c2 (FMap f a :: o2) (FMap g a :: o2))) -> NatTr (c1 :: o1 -> o1 -> *) (c2 :: o2 -> o2 -> *) f g |
(Category o1 c1, Category o2 c2) => Category * (NatTr o1 o2 c1 c2) | |
Category k c => Monoidal * (NatTr k k c c) | |
type Mu * (NatTr k k c c) = CompFF k k k c c c | |
type I * (NatTr k k c c) = IdentityF k c | |
type Object * (NatTr o1 o2 c1 c2) f = (Functor o1 o2 f (KProxy (o1 -> o2)), (~) (o1 -> o1 -> *) (Domain o1 f) c1, (~) (o2 -> o2 -> *) (Codomain o2 f) c2) |
data CompFF c1 c2 c3 where Source
(Category o1 c1, Category o2 c2, Category o3 c3) => Functor ((,) * *) * (CompFF o1 o2 o3 c1 c2 c3) (KProxy ((,) * * -> *)) | |
type Codomain * (CompFF o1 o2 o3 c1 c2 c3) = NatTr o1 o3 c1 c3 | |
type FMap ((,) * *) * (CompFF o1 o2 o3 c1 c2 c3) ((,) * * f g) = Comp o2 (KProxy o2) f g | |
type Domain ((,) * *) (CompFF o1 o2 o3 c1 c2 c3) = (:><:) * * * * (NatTr o2 o3 c2 c3) (NatTr o1 o2 c1 c2) |