Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type Unweighted = TerminalProfunctor :: k -> j -> Type
- class Representable (Colimit j1 d) => IsRepresentableColimit (j1 :: j +-> i) (d :: i +-> k)
- class (forall (d :: i +-> k). Representable d => IsRepresentableColimit j d) => HasColimits (j :: a +-> i) k where
- type Colimit (j :: a +-> i) (d :: i +-> k) :: a +-> k
- colimit :: forall (d :: i +-> k). Representable d => (d :.: j) :~> Colimit j d
- colimitUniv :: forall (d :: i +-> k) (p :: a +-> k). (Representable d, Representable p) => ((d :.: j) :~> p) -> Colimit j d :~> p
- leftAdjointPreservesColimits :: forall {k} {k'} {i} {a} (f :: k +-> k') (g :: PRO k k') (d :: i +-> k) (j :: a +-> i). (Adjunction f g, Representable d, Representable f, Representable g, HasColimits j k, HasColimits j k') => (f :.: Colimit j d) :~> Colimit j (f :.: d)
- leftAdjointPreservesColimitsInv :: forall {k} {k'} {i} {a} (f :: k +-> k') (d :: i +-> k) (j :: a +-> i). (Representable d, Representable f, HasColimits j k, HasColimits j k') => Colimit j (f :.: d) :~> (f :.: Colimit j d)
- data InitialLimit (d :: VOID +-> k) (a :: k) (b :: ()) where
- InitialLimit :: forall {k} (d :: VOID +-> k) (a :: k). (a ~> (InitialObject :: k)) -> InitialLimit d a '()
- data CoproductColimit (d :: COPRODUCT () () +-> k) (a :: k) (b :: ()) where
- CoproductColimit :: forall {k} (d :: COPRODUCT () () +-> k) (a :: k). (a ~> ((d % ('L '() :: COLLAGE (InitialProfunctor :: () -> () -> Type))) || (d % ('R '() :: COLLAGE (InitialProfunctor :: () -> () -> Type))))) -> CoproductColimit d a '()
- cochoose :: forall k (d :: COPRODUCT () () +-> k) (b :: COPRODUCT () ()). (HasBinaryCoproducts k, Representable d) => Obj b -> (d % b) ~> ((d % ('L '() :: COLLAGE (InitialProfunctor :: () -> () -> Type))) || (d % ('R '() :: COLLAGE (InitialProfunctor :: () -> () -> Type))))
Documentation
type Unweighted = TerminalProfunctor :: k -> j -> Type Source Comments #
class Representable (Colimit j1 d) => IsRepresentableColimit (j1 :: j +-> i) (d :: i +-> k) Source Comments #
Instances
Representable (Colimit j2 d) => IsRepresentableColimit (j2 :: j1 +-> i) (d :: i +-> k) Source Comments # | |
Defined in Proarrow.Category.Colimit |
class (forall (d :: i +-> k). Representable d => IsRepresentableColimit j d) => HasColimits (j :: a +-> i) k where Source Comments #
profunctor-weighted colimits
colimit :: forall (d :: i +-> k). Representable d => (d :.: j) :~> Colimit j d Source Comments #
colimitUniv :: forall (d :: i +-> k) (p :: a +-> k). (Representable d, Representable p) => ((d :.: j) :~> p) -> Colimit j d :~> p Source Comments #
Instances
leftAdjointPreservesColimits :: forall {k} {k'} {i} {a} (f :: k +-> k') (g :: PRO k k') (d :: i +-> k) (j :: a +-> i). (Adjunction f g, Representable d, Representable f, Representable g, HasColimits j k, HasColimits j k') => (f :.: Colimit j d) :~> Colimit j (f :.: d) Source Comments #
leftAdjointPreservesColimitsInv :: forall {k} {k'} {i} {a} (f :: k +-> k') (d :: i +-> k) (j :: a +-> i). (Representable d, Representable f, HasColimits j k, HasColimits j k') => Colimit j (f :.: d) :~> (f :.: Colimit j d) Source Comments #
data InitialLimit (d :: VOID +-> k) (a :: k) (b :: ()) where Source Comments #
InitialLimit :: forall {k} (d :: VOID +-> k) (a :: k). (a ~> (InitialObject :: k)) -> InitialLimit d a '() |
Instances
HasInitialObject k => Profunctor (InitialLimit d :: k -> () -> Type) Source Comments # | |
Defined in Proarrow.Category.Colimit dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> InitialLimit d a b -> InitialLimit d c d0 Source Comments # (\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> InitialLimit d a b -> r Source Comments # | |
HasInitialObject k => Representable (InitialLimit d :: k -> () -> Type) Source Comments # | |
Defined in Proarrow.Category.Colimit index :: forall (a :: k) (b :: ()). InitialLimit d a b -> a ~> (InitialLimit d % b) Source Comments # tabulate :: forall (b :: ()) (a :: k). Ob b => (a ~> (InitialLimit d % b)) -> InitialLimit d a b Source Comments # repMap :: forall (a :: ()) (b :: ()). (a ~> b) -> (InitialLimit d % a) ~> (InitialLimit d % b) Source Comments # | |
type (InitialLimit d :: k -> () -> Type) % '() Source Comments # | |
Defined in Proarrow.Category.Colimit |
data CoproductColimit (d :: COPRODUCT () () +-> k) (a :: k) (b :: ()) where Source Comments #
CoproductColimit :: forall {k} (d :: COPRODUCT () () +-> k) (a :: k). (a ~> ((d % ('L '() :: COLLAGE (InitialProfunctor :: () -> () -> Type))) || (d % ('R '() :: COLLAGE (InitialProfunctor :: () -> () -> Type))))) -> CoproductColimit d a '() |