| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Object.Pullback
Synopsis
- data Cone (a :: PROD k) (bs :: LIST k) where
- data Cosink (as :: [k]) where
- class HasProducts k => HasPullbacks k where
- equalizer :: forall {k} (a :: k) (b :: k). HasPullbacks k => (a ~> b) -> (a ~> b) -> Cosink '[a]
- kernel :: forall k (a :: k) (b :: k). (HasPullbacks k, HasZeroObject k) => (a ~> b) -> Cosink '[a]
- class InternalIn (ik :: k) k1 where
Documentation
data Cone (a :: PROD k) (bs :: LIST k) where Source Github #
A cone is a bunch of arrows with a shared source.
Constructors
| Apex :: forall {k} (a1 :: k). Ob a1 => Cone ('PR a1) ('L ('[] :: [k])) | |
| Leg :: forall {k} (a1 :: k) (b :: k) (bs1 :: [k]). (a1 ~> b) -> Cone ('PR a1) ('L bs1) -> Cone ('PR a1) ('L (b ': bs1)) |
Instances
| HasProducts k => MonoidalProfunctor (Cone :: PROD k -> LIST k -> Type) Source Github # | |
| CategoryOf k => Profunctor (Cone :: PROD k -> LIST k -> Type) Source Github # | |
data Cosink (as :: [k]) where Source Github #
A cosink (a.k.a a source) is a cone, but with the apex type hidden by an existential.
class HasProducts k => HasPullbacks k where Source Github #
Pullbacks are an inherently dependently typed concept: The type of the apex object depends on the values of the given arrows. But at runtime we can still calculate the arrows and the type, which we hide behind an existential.
Methods
pullback :: forall (o :: k) (a :: k) (b :: k). (a ~> o) -> (b ~> o) -> Cosink '[a, b] Source Github #
Instances
| HasPullbacks FINSET Source Github # | |
| HasPushouts k => HasPullbacks (OPPOSITE k) Source Github # | |
equalizer :: forall {k} (a :: k) (b :: k). HasPullbacks k => (a ~> b) -> (a ~> b) -> Cosink '[a] Source Github #
kernel :: forall k (a :: k) (b :: k). (HasPullbacks k, HasZeroObject k) => (a ~> b) -> Cosink '[a] Source Github #
class InternalIn (ik :: k) k1 where Source Github #
Methods
source :: (C1 ik :: k1) ~> (C0 ik :: k1) Source Github #
target :: (C1 ik :: k1) ~> (C0 ik :: k1) Source Github #
identity :: (C0 ik :: k1) ~> (C1 ik :: k1) Source Github #
compose :: Cosink '[C1 ik :: k1, C1 ik :: k1, C1 ik :: k1] Source Github #
Instances
| InternalIn BOOL FINSET Source Github # | |||||||||
Defined in Proarrow.Category.Instance.FinSet Associated Types
Methods source :: (C1 BOOL :: FINSET) ~> (C0 BOOL :: FINSET) Source Github # target :: (C1 BOOL :: FINSET) ~> (C0 BOOL :: FINSET) Source Github # identity :: (C0 BOOL :: FINSET) ~> (C1 BOOL :: FINSET) Source Github # compose :: Cosink '[C1 BOOL :: FINSET, C1 BOOL :: FINSET, C1 BOOL :: FINSET] Source Github # | |||||||||