Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Documentation
Instances
Category (LTE n :: Fin n -> Fin n -> Type) Source # | |
CartesianClosed (LTE ('S n)) => CartesianClosed (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
Defined in Data.Category.Fin apply :: forall (y :: k) (z :: k). Obj (LTE ('S ('S n))) y -> Obj (LTE ('S ('S n))) z -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) (Exponential (LTE ('S ('S n))) y z) y) z Source # tuple :: forall (y :: k) (z :: k). Obj (LTE ('S ('S n))) y -> Obj (LTE ('S ('S n))) z -> LTE ('S ('S n)) z (Exponential (LTE ('S ('S n))) y (BinaryProduct (LTE ('S ('S n))) z y)) Source # (^^^) :: forall (z1 :: k) (z2 :: k) (y2 :: k) (y1 :: k). LTE ('S ('S n)) z1 z2 -> LTE ('S ('S n)) y2 y1 -> LTE ('S ('S n)) (Exponential (LTE ('S ('S n))) y1 z1) (Exponential (LTE ('S ('S n))) y2 z2) Source # | |
CartesianClosed (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin apply :: forall (y :: k) (z :: k). Obj (LTE ('S 'Z)) y -> Obj (LTE ('S 'Z)) z -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) (Exponential (LTE ('S 'Z)) y z) y) z Source # tuple :: forall (y :: k) (z :: k). Obj (LTE ('S 'Z)) y -> Obj (LTE ('S 'Z)) z -> LTE ('S 'Z) z (Exponential (LTE ('S 'Z)) y (BinaryProduct (LTE ('S 'Z)) z y)) Source # (^^^) :: forall (z1 :: k) (z2 :: k) (y2 :: k) (y1 :: k). LTE ('S 'Z) z1 z2 -> LTE ('S 'Z) y2 y1 -> LTE ('S 'Z) (Exponential (LTE ('S 'Z)) y1 z1) (Exponential (LTE ('S 'Z)) y2 z2) Source # | |
HasBinaryCoproducts (LTE ('S n)) => HasBinaryCoproducts (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
Defined in Data.Category.Fin inj1 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) x (BinaryCoproduct (LTE ('S ('S n))) x y) Source # inj2 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) y (BinaryCoproduct (LTE ('S ('S n))) x y) Source # (|||) :: forall (x :: k) (a :: k) (y :: k). LTE ('S ('S n)) x a -> LTE ('S ('S n)) y a -> LTE ('S ('S n)) (BinaryCoproduct (LTE ('S ('S n))) x y) a Source # (+++) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S ('S n)) a1 b1 -> LTE ('S ('S n)) a2 b2 -> LTE ('S ('S n)) (BinaryCoproduct (LTE ('S ('S n))) a1 a2) (BinaryCoproduct (LTE ('S ('S n))) b1 b2) Source # | |
HasBinaryCoproducts (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin inj1 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) x (BinaryCoproduct (LTE ('S 'Z)) x y) Source # inj2 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) y (BinaryCoproduct (LTE ('S 'Z)) x y) Source # (|||) :: forall (x :: k) (a :: k) (y :: k). LTE ('S 'Z) x a -> LTE ('S 'Z) y a -> LTE ('S 'Z) (BinaryCoproduct (LTE ('S 'Z)) x y) a Source # (+++) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S 'Z) a1 b1 -> LTE ('S 'Z) a2 b2 -> LTE ('S 'Z) (BinaryCoproduct (LTE ('S 'Z)) a1 a2) (BinaryCoproduct (LTE ('S 'Z)) b1 b2) Source # | |
HasBinaryProducts (LTE ('S n)) => HasBinaryProducts (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
Defined in Data.Category.Fin proj1 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) x y) x Source # proj2 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) x y) y Source # (&&&) :: forall (a :: k) (x :: k) (y :: k). LTE ('S ('S n)) a x -> LTE ('S ('S n)) a y -> LTE ('S ('S n)) a (BinaryProduct (LTE ('S ('S n))) x y) Source # (***) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S ('S n)) a1 b1 -> LTE ('S ('S n)) a2 b2 -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) a1 a2) (BinaryProduct (LTE ('S ('S n))) b1 b2) Source # | |
HasBinaryProducts (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin proj1 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) x y) x Source # proj2 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) x y) y Source # (&&&) :: forall (a :: k) (x :: k) (y :: k). LTE ('S 'Z) a x -> LTE ('S 'Z) a y -> LTE ('S 'Z) a (BinaryProduct (LTE ('S 'Z)) x y) Source # (***) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S 'Z) a1 b1 -> LTE ('S 'Z) a2 b2 -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) a1 a2) (BinaryProduct (LTE ('S 'Z)) b1 b2) Source # | |
HasInitialObject (LTE ('S n) :: Fin ('S n) -> Fin ('S n) -> Type) Source # | |
Defined in Data.Category.Fin initialObject :: Obj (LTE ('S n)) (InitialObject (LTE ('S n))) Source # initialize :: forall (a :: k). Obj (LTE ('S n)) a -> LTE ('S n) (InitialObject (LTE ('S n))) a Source # | |
HasTerminalObject (LTE ('S n)) => HasTerminalObject (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
HasTerminalObject (LTE ('S 'Z)) Source # | |
type InitialObject (LTE ('S n) :: Fin ('S n) -> Fin ('S n) -> Type) Source # | |
type TerminalObject (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
type TerminalObject (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FZ :: Fin ('S ('S n))) Source # | |
type Exponential (LTE ('S 'Z)) ('FZ :: Fin ('S 'Z)) ('FZ :: Fin ('S 'Z)) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryCoproduct (LTE ('S 'Z)) ('FZ :: Fin ('S 'Z)) ('FZ :: Fin ('S 'Z)) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryProduct (LTE ('S 'Z)) ('FZ :: Fin ('S 'Z)) ('FZ :: Fin ('S 'Z)) Source # | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FZ :: Fin ('S ('S n))) Source # | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
data LTE (n :: Nat) (a :: Fin n) (b :: Fin n) where Source #
ZEQ :: LTE ('S m) 'FZ 'FZ | |
ZLT :: LTE ('S m) 'FZ b -> LTE ('S ('S m)) 'FZ ('FS b) | |
SLT :: LTE ('S m) a b -> LTE ('S ('S m)) ('FS a) ('FS b) |
Instances
Category (LTE n :: Fin n -> Fin n -> Type) Source # | |
CartesianClosed (LTE ('S n)) => CartesianClosed (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
Defined in Data.Category.Fin apply :: forall (y :: k) (z :: k). Obj (LTE ('S ('S n))) y -> Obj (LTE ('S ('S n))) z -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) (Exponential (LTE ('S ('S n))) y z) y) z Source # tuple :: forall (y :: k) (z :: k). Obj (LTE ('S ('S n))) y -> Obj (LTE ('S ('S n))) z -> LTE ('S ('S n)) z (Exponential (LTE ('S ('S n))) y (BinaryProduct (LTE ('S ('S n))) z y)) Source # (^^^) :: forall (z1 :: k) (z2 :: k) (y2 :: k) (y1 :: k). LTE ('S ('S n)) z1 z2 -> LTE ('S ('S n)) y2 y1 -> LTE ('S ('S n)) (Exponential (LTE ('S ('S n))) y1 z1) (Exponential (LTE ('S ('S n))) y2 z2) Source # | |
CartesianClosed (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin apply :: forall (y :: k) (z :: k). Obj (LTE ('S 'Z)) y -> Obj (LTE ('S 'Z)) z -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) (Exponential (LTE ('S 'Z)) y z) y) z Source # tuple :: forall (y :: k) (z :: k). Obj (LTE ('S 'Z)) y -> Obj (LTE ('S 'Z)) z -> LTE ('S 'Z) z (Exponential (LTE ('S 'Z)) y (BinaryProduct (LTE ('S 'Z)) z y)) Source # (^^^) :: forall (z1 :: k) (z2 :: k) (y2 :: k) (y1 :: k). LTE ('S 'Z) z1 z2 -> LTE ('S 'Z) y2 y1 -> LTE ('S 'Z) (Exponential (LTE ('S 'Z)) y1 z1) (Exponential (LTE ('S 'Z)) y2 z2) Source # | |
HasBinaryCoproducts (LTE ('S n)) => HasBinaryCoproducts (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
Defined in Data.Category.Fin inj1 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) x (BinaryCoproduct (LTE ('S ('S n))) x y) Source # inj2 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) y (BinaryCoproduct (LTE ('S ('S n))) x y) Source # (|||) :: forall (x :: k) (a :: k) (y :: k). LTE ('S ('S n)) x a -> LTE ('S ('S n)) y a -> LTE ('S ('S n)) (BinaryCoproduct (LTE ('S ('S n))) x y) a Source # (+++) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S ('S n)) a1 b1 -> LTE ('S ('S n)) a2 b2 -> LTE ('S ('S n)) (BinaryCoproduct (LTE ('S ('S n))) a1 a2) (BinaryCoproduct (LTE ('S ('S n))) b1 b2) Source # | |
HasBinaryCoproducts (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin inj1 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) x (BinaryCoproduct (LTE ('S 'Z)) x y) Source # inj2 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) y (BinaryCoproduct (LTE ('S 'Z)) x y) Source # (|||) :: forall (x :: k) (a :: k) (y :: k). LTE ('S 'Z) x a -> LTE ('S 'Z) y a -> LTE ('S 'Z) (BinaryCoproduct (LTE ('S 'Z)) x y) a Source # (+++) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S 'Z) a1 b1 -> LTE ('S 'Z) a2 b2 -> LTE ('S 'Z) (BinaryCoproduct (LTE ('S 'Z)) a1 a2) (BinaryCoproduct (LTE ('S 'Z)) b1 b2) Source # | |
HasBinaryProducts (LTE ('S n)) => HasBinaryProducts (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
Defined in Data.Category.Fin proj1 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) x y) x Source # proj2 :: forall (x :: k) (y :: k). Obj (LTE ('S ('S n))) x -> Obj (LTE ('S ('S n))) y -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) x y) y Source # (&&&) :: forall (a :: k) (x :: k) (y :: k). LTE ('S ('S n)) a x -> LTE ('S ('S n)) a y -> LTE ('S ('S n)) a (BinaryProduct (LTE ('S ('S n))) x y) Source # (***) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S ('S n)) a1 b1 -> LTE ('S ('S n)) a2 b2 -> LTE ('S ('S n)) (BinaryProduct (LTE ('S ('S n))) a1 a2) (BinaryProduct (LTE ('S ('S n))) b1 b2) Source # | |
HasBinaryProducts (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin proj1 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) x y) x Source # proj2 :: forall (x :: k) (y :: k). Obj (LTE ('S 'Z)) x -> Obj (LTE ('S 'Z)) y -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) x y) y Source # (&&&) :: forall (a :: k) (x :: k) (y :: k). LTE ('S 'Z) a x -> LTE ('S 'Z) a y -> LTE ('S 'Z) a (BinaryProduct (LTE ('S 'Z)) x y) Source # (***) :: forall (a1 :: k) (b1 :: k) (a2 :: k) (b2 :: k). LTE ('S 'Z) a1 b1 -> LTE ('S 'Z) a2 b2 -> LTE ('S 'Z) (BinaryProduct (LTE ('S 'Z)) a1 a2) (BinaryProduct (LTE ('S 'Z)) b1 b2) Source # | |
HasInitialObject (LTE ('S n) :: Fin ('S n) -> Fin ('S n) -> Type) Source # | |
Defined in Data.Category.Fin initialObject :: Obj (LTE ('S n)) (InitialObject (LTE ('S n))) Source # initialize :: forall (a :: k). Obj (LTE ('S n)) a -> LTE ('S n) (InitialObject (LTE ('S n))) a Source # | |
HasTerminalObject (LTE ('S n)) => HasTerminalObject (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
HasTerminalObject (LTE ('S 'Z)) Source # | |
type InitialObject (LTE ('S n) :: Fin ('S n) -> Fin ('S n) -> Type) Source # | |
type TerminalObject (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) Source # | |
type TerminalObject (LTE ('S 'Z)) Source # | |
Defined in Data.Category.Fin | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FZ :: Fin ('S ('S n))) Source # | |
type Exponential (LTE ('S 'Z)) ('FZ :: Fin ('S 'Z)) ('FZ :: Fin ('S 'Z)) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryCoproduct (LTE ('S 'Z)) ('FZ :: Fin ('S 'Z)) ('FZ :: Fin ('S 'Z)) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryProduct (LTE ('S 'Z)) ('FZ :: Fin ('S 'Z)) ('FZ :: Fin ('S 'Z)) Source # | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FZ :: Fin ('S ('S n))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FZ :: Fin ('S ('S n))) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FZ :: Fin ('S ('S n))) Source # | |
type Exponential (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryCoproduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |
type BinaryProduct (LTE ('S ('S n)) :: Fin ('S ('S n)) -> Fin ('S ('S n)) -> Type) ('FS a :: Kind (LTE ('S ('S n)))) ('FS b :: Kind (LTE ('S ('S n)))) Source # | |