Safe Haskell | None |
---|---|
Language | GHC2024 |
Proarrow.Object.Power
Synopsis
- class (Enriched v k, Closed v) => Powered v k where
- type (a :: k) ^ (n :: v) :: k
- withObPower :: forall (a :: k) (n :: v) r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r
- power :: forall (a :: k) (b :: k) (n :: v). (Ob a, Ob b) => (n ~> HomObj v a b) -> a ~> (b ^ n)
- unpower :: forall (b :: k) (n :: v) (a :: k). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj v a b
- mapBase :: forall {k} {v} (n :: v) (a :: k) (b :: k). (Powered v k, Ob n) => (a ~> b) -> (a ^ n) ~> (b ^ n)
- mapPower :: forall {k} {v} (a :: k) (n :: v) (m :: v). (Powered v k, Ob a) => (n ~> m) -> (a ^ m) ~> (a ^ n)
- class HomObj v '(a1, a2) '(b1, b2) ~ (HomObj v a1 b1 && HomObj v a2 b2) => HomObjIsProduct v (a1 :: k) (a2 :: k1) (b1 :: k) (b2 :: k1)
- data ((p :: k -> k1 -> Type) :^: n) (a :: k) (b :: k1) where
Documentation
class (Enriched v k, Closed v) => Powered v k where Source Comments #
Categories powered over Hask.
Methods
withObPower :: forall (a :: k) (n :: v) r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments #
power :: forall (a :: k) (b :: k) (n :: v). (Ob a, Ob b) => (n ~> HomObj v a b) -> a ~> (b ^ n) Source Comments #
unpower :: forall (b :: k) (n :: v) (a :: k). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj v a b Source Comments #
Instances
Powered Type LINEAR Source Comments # | |||||
Defined in Proarrow.Category.Instance.Linear Methods withObPower :: forall (a :: LINEAR) n r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: LINEAR) (b :: LINEAR) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: LINEAR) n (a :: LINEAR). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj Type a b Source Comments # | |||||
Powered Type POINTED Source Comments # | |||||
Defined in Proarrow.Category.Instance.PointedHask Methods withObPower :: forall (a :: POINTED) n r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: POINTED) (b :: POINTED) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: POINTED) n (a :: POINTED). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj Type a b Source Comments # | |||||
Powered Type Type Source Comments # | |||||
Defined in Proarrow.Object.Power Associated Types
| |||||
(Enriched v (), Closed v, HomObj v '() '() ~ (TerminalObject :: v), Cartesian v) => Powered v () Source Comments # | |||||
Defined in Proarrow.Object.Power Methods withObPower :: forall (a :: ()) (n :: v) r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: ()) (b :: ()) (n :: v). (Ob a, Ob b) => (n ~> HomObj v a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: ()) (n :: v) (a :: ()). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj v a b Source Comments # | |||||
(Copowered v k, Enriched v (OPPOSITE k), forall (a :: k) (b :: k). HomObjOp v a b) => Powered v (OPPOSITE k) Source Comments # | |||||
Defined in Proarrow.Object.Copower Methods withObPower :: forall (a :: OPPOSITE k) (n :: v) r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (n :: v). (Ob a, Ob b) => (n ~> HomObj v a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: OPPOSITE k) (n :: v) (a :: OPPOSITE k). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj v a b Source Comments # | |||||
(CategoryOf j, CategoryOf k) => Powered Type (j +-> k) Source Comments # | |||||
Defined in Proarrow.Object.Power Methods withObPower :: forall (a :: j +-> k) n r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: j +-> k) (b :: j +-> k) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: j +-> k) n (a :: j +-> k). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj Type a b Source Comments # | |||||
Powered Type (k -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Nat Methods withObPower :: forall (a :: k -> Type) n r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: k -> Type) (b :: k -> Type) n. (Ob a, Ob b) => (n ~> HomObj Type a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: k -> Type) n (a :: k -> Type). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj Type a b Source Comments # | |||||
(Powered v j, Powered v k, Enriched v (j, k), forall (a :: (j, k)) (b :: (j, k)) (a1 :: j) (a2 :: k) (b1 :: j) (b2 :: k). (Ob a, a ~ '(a1, a2), Ob b, b ~ '(b1, b2)) => HomObjIsProduct v a1 a2 b1 b2, Cartesian v) => Powered v (j, k) Source Comments # | |||||
Defined in Proarrow.Object.Power Methods withObPower :: forall (a :: (j, k)) (n :: v) r. (Ob a, Ob n) => (Ob (a ^ n) => r) -> r Source Comments # power :: forall (a :: (j, k)) (b :: (j, k)) (n :: v). (Ob a, Ob b) => (n ~> HomObj v a b) -> a ~> (b ^ n) Source Comments # unpower :: forall (b :: (j, k)) (n :: v) (a :: (j, k)). (Ob b, Ob n) => (a ~> (b ^ n)) -> n ~> HomObj v a b Source Comments # |
mapBase :: forall {k} {v} (n :: v) (a :: k) (b :: k). (Powered v k, Ob n) => (a ~> b) -> (a ^ n) ~> (b ^ n) Source Comments #
mapPower :: forall {k} {v} (a :: k) (n :: v) (m :: v). (Powered v k, Ob a) => (n ~> m) -> (a ^ m) ~> (a ^ n) Source Comments #
class HomObj v '(a1, a2) '(b1, b2) ~ (HomObj v a1 b1 && HomObj v a2 b2) => HomObjIsProduct v (a1 :: k) (a2 :: k1) (b1 :: k) (b2 :: k1) Source Comments #
Instances
HomObj v '(a1, a2) '(b1, b2) ~ (HomObj v a1 b1 && HomObj v a2 b2) => HomObjIsProduct v (a1 :: k1) (a2 :: k2) (b1 :: k1) (b2 :: k2) Source Comments # | |
Defined in Proarrow.Object.Power |