| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Limit.Pullback
Synopsis
- class CategoryOf k => HasPullbacks k where
- thinPullback :: forall {k} (o :: k) (a :: k) (b :: k) r. (Thin k, HasProducts k) => (a ~> o) -> (b ~> o) -> (forall (p :: k). (p ~> a) -> (p ~> b) -> r) -> r
- equalizerDefault :: forall {k} (a :: k) (b :: k) r. (HasPullbacks k, HasProducts k) => (a ~> b) -> (a ~> b) -> (forall (e :: k). (e ~> a) -> r) -> r
- kernelPair :: forall k (a :: k) (b :: k) r. HasPullbacks k => (a ~> b) -> (forall (p :: k). (p ~> a) -> (p ~> a) -> r) -> r
- isMono :: forall k (a :: k) (b :: k). (HasPullbacks k, Eq2 (Hom k)) => (a ~> b) -> Bool
Documentation
class CategoryOf k => HasPullbacks k where Source Github #
Pullbacks are an inherently dependently typed concept: The type of the base 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) r. (a ~> o) -> (b ~> o) -> (forall (p :: k). (p ~> a) -> (p ~> b) -> r) -> r Source Github #
Instances
| HasPullbacks BOOL Source Github # | |
| HasPullbacks FINSET Source Github # | |
| HasPullbacks () Source Github # | |
| HasPushouts k => HasPullbacks (COSPAN k) Source Github # | |
| HasPushouts k => HasPullbacks (OPPOSITE k) Source Github # | |
| HasPullbacks k => HasPullbacks (SPAN k) Source Github # | |
| (HasPullbacks k1, HasPullbacks k2) => HasPullbacks (k1, k2) Source Github # | |
thinPullback :: forall {k} (o :: k) (a :: k) (b :: k) r. (Thin k, HasProducts k) => (a ~> o) -> (b ~> o) -> (forall (p :: k). (p ~> a) -> (p ~> b) -> r) -> r Source Github #
In a thin category, arrows don't carry information, so pullbacks are just products.
equalizerDefault :: forall {k} (a :: k) (b :: k) r. (HasPullbacks k, HasProducts k) => (a ~> b) -> (a ~> b) -> (forall (e :: k). (e ~> a) -> r) -> r Source Github #
kernelPair :: forall k (a :: k) (b :: k) r. HasPullbacks k => (a ~> b) -> (forall (p :: k). (p ~> a) -> (p ~> a) -> r) -> r Source Github #