| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.Fin
Documentation
data FIN (n :: NAT) where Source Comments #
Constructors
| FZ :: forall (n1 :: NAT). FIN ('S n1) | |
| FS :: forall (n1 :: NAT). FIN ('S n1) -> FIN ('S ('S n1)) |
Instances
| CategoryOf (FIN n) Source Comments # | The (thin) category of finite ordinals. An arrow from a to b means that a is less than or equal to b. | ||||
Defined in Proarrow.Category.Instance.Fin | |||||
| HasBinaryCoproducts (FIN ('S n)) => HasBinaryCoproducts (FIN ('S ('S n))) Source Comments # | Maximum | ||||
Defined in Proarrow.Category.Instance.Fin Methods withObCoprod :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FIN ('S ('S n))) (a :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) (x :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||
| HasBinaryCoproducts (FIN ('S 'Z)) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Methods withObCoprod :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FIN ('S 'Z)) (a :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) (x :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||
| HasBinaryCoproducts (FIN 'Z) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Methods withObCoprod :: forall (a :: FIN 'Z) (b :: FIN 'Z) r. (Ob a, Ob b) => (Ob (a || b) => r) -> r Source Comments # lft :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => a ~> (a || b) Source Comments # rgt :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => b ~> (a || b) Source Comments # (|||) :: forall (x :: FIN 'Z) (a :: FIN 'Z) (y :: FIN 'Z). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments # (+++) :: forall (a :: FIN 'Z) (b :: FIN 'Z) (x :: FIN 'Z) (y :: FIN 'Z). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments # | |||||
| HasBinaryProducts (FIN ('S n)) => HasBinaryProducts (FIN ('S ('S n))) Source Comments # | Minimum | ||||
Defined in Proarrow.Category.Instance.Fin Methods withObProd :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Comments # fst :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => (a && b) ~> a Source Comments # snd :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))). (Ob a, Ob b) => (a && b) ~> b Source Comments # (&&&) :: forall (a :: FIN ('S ('S n))) (x :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: FIN ('S ('S n))) (b :: FIN ('S ('S n))) (x :: FIN ('S ('S n))) (y :: FIN ('S ('S n))). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||
| HasBinaryProducts (FIN ('S 'Z)) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Methods withObProd :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Comments # fst :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => (a && b) ~> a Source Comments # snd :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)). (Ob a, Ob b) => (a && b) ~> b Source Comments # (&&&) :: forall (a :: FIN ('S 'Z)) (x :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: FIN ('S 'Z)) (b :: FIN ('S 'Z)) (x :: FIN ('S 'Z)) (y :: FIN ('S 'Z)). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||
| HasBinaryProducts (FIN 'Z) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Methods withObProd :: forall (a :: FIN 'Z) (b :: FIN 'Z) r. (Ob a, Ob b) => (Ob (a && b) => r) -> r Source Comments # fst :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => (a && b) ~> a Source Comments # snd :: forall (a :: FIN 'Z) (b :: FIN 'Z). (Ob a, Ob b) => (a && b) ~> b Source Comments # (&&&) :: forall (a :: FIN 'Z) (x :: FIN 'Z) (y :: FIN 'Z). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: FIN 'Z) (b :: FIN 'Z) (x :: FIN 'Z) (y :: FIN 'Z). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||
| HasInitialObject (FIN ('S n)) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Associated Types
| |||||
| HasTerminalObject (FIN ('S n)) => HasTerminalObject (FIN ('S ('S n))) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Associated Types
| |||||
| HasTerminalObject (FIN ('S 'Z)) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin Associated Types
| |||||
| Promonad (LTE :: FIN n -> FIN n -> Type) Source Comments # | |||||
| ThinProfunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin | |||||
| Profunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # | |||||
| type (~>) Source Comments # | |||||
| type InitialObject Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin | |||||
| type TerminalObject Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin | |||||
| type TerminalObject Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin | |||||
| type Ob (a :: FIN n) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Fin | |||||
| type (a :: FIN 'Z) || (b :: FIN 'Z) Source Comments # | |||||
| type (a :: FIN 'Z) && (b :: FIN 'Z) Source Comments # | |||||
| type (a :: FIN ('S ('S n))) || ('FZ :: FIN ('S ('S n))) Source Comments # | |||||
| type (a :: FIN ('S ('S n))) && ('FZ :: FIN ('S ('S n))) Source Comments # | |||||
| type ('FZ :: FIN ('S ('S n))) || (b :: FIN ('S ('S n))) Source Comments # | |||||
| type ('FZ :: FIN ('S ('S n))) && (b :: FIN ('S ('S n))) Source Comments # | |||||
| type ('FZ :: FIN ('S 'Z)) || ('FZ :: FIN ('S 'Z)) Source Comments # | |||||
| type ('FZ :: FIN ('S 'Z)) && ('FZ :: FIN ('S 'Z)) Source Comments # | |||||
| type HasArrow (LTE :: FIN n -> FIN n -> Type) (a :: FIN n) (b :: FIN n) Source Comments # | |||||
| type ('FS a :: FIN ('S ('S n))) || ('FS b :: FIN ('S ('S n))) Source Comments # | |||||
| type ('FS a :: FIN ('S ('S n))) && ('FS b :: FIN ('S ('S n))) Source Comments # | |||||
data LTE (a :: FIN n) (b :: FIN n) where Source Comments #
Constructors
| ZEQ :: forall {n1 :: NAT}. LTE ('FZ :: FIN ('S n1)) ('FZ :: FIN ('S n1)) | |
| ZLT :: forall {n1 :: NAT} (b1 :: FIN ('S n1)). LTE ('FZ :: FIN ('S n1)) b1 -> LTE ('FZ :: FIN ('S ('S n1))) ('FS b1) | |
| SLT :: forall {n1 :: NAT} (a1 :: FIN ('S n1)) (b1 :: FIN ('S n1)). LTE a1 b1 -> LTE ('FS a1) ('FS b1) |
Instances
| Promonad (LTE :: FIN n -> FIN n -> Type) Source Comments # | |
| ThinProfunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Fin | |
| Profunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # | |
| type HasArrow (LTE :: FIN n -> FIN n -> Type) (a :: FIN n) (b :: FIN n) Source Comments # | |
class IsLTE (a :: FIN n) (b :: FIN n) where Source Comments #