| Copyright | (c) Dennis Gosnell 2018 |
|---|---|
| License | BSD3 |
| Stability | experimental |
| Portability | POSIX |
| Safe Haskell | None |
| Language | Haskell2010 |
Termonad.Config.Vec
Description
This is a small library of dependent types. It provides indexed types like
Fin, Vec, and Matrix.
This is mainly used in Termonad for Termonad.Config.Colour to represent length-indexed colour lists.
This module implements a subset of the functionality from the abandoned type-combinators library. Ideally this module would be split out to a separate package. If you're interested in working on something like this, please see this issue on Github.
Synopsis
- data Peano
- type ZSym0 = Z
- type SSym1 (t6989586621679475479 :: Peano) = S t6989586621679475479
- data SSym0 :: (~>) Peano Peano where
- type family N0 :: Peano where ...
- type N0Sym0 = N0
- type family N1 :: Peano where ...
- type N1Sym0 = N1
- type family N2 :: Peano where ...
- type N2Sym0 = N2
- type family N3 :: Peano where ...
- type N3Sym0 = N3
- type family N4 :: Peano where ...
- type N4Sym0 = N4
- type family N5 :: Peano where ...
- type N5Sym0 = N5
- type family N6 :: Peano where ...
- type N6Sym0 = N6
- type family N7 :: Peano where ...
- type N7Sym0 = N7
- type family N8 :: Peano where ...
- type N8Sym0 = N8
- type family N9 :: Peano where ...
- type N9Sym0 = N9
- type family N10 :: Peano where ...
- type N10Sym0 = N10
- type family SubtractPeano (a :: Peano) (a :: Peano) :: Peano where ...
- data SubtractPeanoSym0 :: (~>) Peano ((~>) Peano Peano) where
- SubtractPeanoSym0KindInference :: forall a6989586621679475487 arg. SameKind (Apply SubtractPeanoSym0 arg) (SubtractPeanoSym1 arg) => SubtractPeanoSym0 a6989586621679475487
- data SubtractPeanoSym1 (a6989586621679475487 :: Peano) :: (~>) Peano Peano where
- SubtractPeanoSym1KindInference :: forall a6989586621679475487 a6989586621679475488 arg. SameKind (Apply (SubtractPeanoSym1 a6989586621679475487) arg) (SubtractPeanoSym2 a6989586621679475487 arg) => SubtractPeanoSym1 a6989586621679475487 a6989586621679475488
- type SubtractPeanoSym2 (a6989586621679475487 :: Peano) (a6989586621679475488 :: Peano) = SubtractPeano a6989586621679475487 a6989586621679475488
- type family AddPeano (a :: Peano) (a :: Peano) :: Peano where ...
- data AddPeanoSym0 :: (~>) Peano ((~>) Peano Peano) where
- AddPeanoSym0KindInference :: forall a6989586621679475494 arg. SameKind (Apply AddPeanoSym0 arg) (AddPeanoSym1 arg) => AddPeanoSym0 a6989586621679475494
- data AddPeanoSym1 (a6989586621679475494 :: Peano) :: (~>) Peano Peano where
- AddPeanoSym1KindInference :: forall a6989586621679475494 a6989586621679475495 arg. SameKind (Apply (AddPeanoSym1 a6989586621679475494) arg) (AddPeanoSym2 a6989586621679475494 arg) => AddPeanoSym1 a6989586621679475494 a6989586621679475495
- type AddPeanoSym2 (a6989586621679475494 :: Peano) (a6989586621679475495 :: Peano) = AddPeano a6989586621679475494 a6989586621679475495
- type family MultPeano (a :: Peano) (a :: Peano) :: Peano where ...
- data MultPeanoSym0 :: (~>) Peano ((~>) Peano Peano) where
- MultPeanoSym0KindInference :: forall a6989586621679475481 arg. SameKind (Apply MultPeanoSym0 arg) (MultPeanoSym1 arg) => MultPeanoSym0 a6989586621679475481
- data MultPeanoSym1 (a6989586621679475481 :: Peano) :: (~>) Peano Peano where
- MultPeanoSym1KindInference :: forall a6989586621679475481 a6989586621679475482 arg. SameKind (Apply (MultPeanoSym1 a6989586621679475481) arg) (MultPeanoSym2 a6989586621679475481 arg) => MultPeanoSym1 a6989586621679475481 a6989586621679475482
- type MultPeanoSym2 (a6989586621679475481 :: Peano) (a6989586621679475482 :: Peano) = MultPeano a6989586621679475481 a6989586621679475482
- type family N24 :: Peano where ...
- type N24Sym0 = N24
- type family Compare_6989586621679477240 (a :: Peano) (a :: Peano) :: Ordering where ...
- type Compare_6989586621679477240Sym2 (a6989586621679477238 :: Peano) (a6989586621679477239 :: Peano) = Compare_6989586621679477240 a6989586621679477238 a6989586621679477239
- data Compare_6989586621679477240Sym1 (a6989586621679477238 :: Peano) :: (~>) Peano Ordering where
- Compare_6989586621679477240Sym1KindInference :: forall a6989586621679477238 a6989586621679477239 arg. SameKind (Apply (Compare_6989586621679477240Sym1 a6989586621679477238) arg) (Compare_6989586621679477240Sym2 a6989586621679477238 arg) => Compare_6989586621679477240Sym1 a6989586621679477238 a6989586621679477239
- data Compare_6989586621679477240Sym0 :: (~>) Peano ((~>) Peano Ordering) where
- Compare_6989586621679477240Sym0KindInference :: forall a6989586621679477238 arg. SameKind (Apply Compare_6989586621679477240Sym0 arg) (Compare_6989586621679477240Sym1 arg) => Compare_6989586621679477240Sym0 a6989586621679477238
- type family ShowsPrec_6989586621679477933 (a :: Nat) (a :: Peano) (a :: Symbol) :: Symbol where ...
- type ShowsPrec_6989586621679477933Sym3 (a6989586621679477930 :: Nat) (a6989586621679477931 :: Peano) (a6989586621679477932 :: Symbol) = ShowsPrec_6989586621679477933 a6989586621679477930 a6989586621679477931 a6989586621679477932
- data ShowsPrec_6989586621679477933Sym2 (a6989586621679477930 :: Nat) (a6989586621679477931 :: Peano) :: (~>) Symbol Symbol where
- ShowsPrec_6989586621679477933Sym2KindInference :: forall a6989586621679477930 a6989586621679477931 a6989586621679477932 arg. SameKind (Apply (ShowsPrec_6989586621679477933Sym2 a6989586621679477930 a6989586621679477931) arg) (ShowsPrec_6989586621679477933Sym3 a6989586621679477930 a6989586621679477931 arg) => ShowsPrec_6989586621679477933Sym2 a6989586621679477930 a6989586621679477931 a6989586621679477932
- data ShowsPrec_6989586621679477933Sym1 (a6989586621679477930 :: Nat) :: (~>) Peano ((~>) Symbol Symbol) where
- ShowsPrec_6989586621679477933Sym1KindInference :: forall a6989586621679477930 a6989586621679477931 arg. SameKind (Apply (ShowsPrec_6989586621679477933Sym1 a6989586621679477930) arg) (ShowsPrec_6989586621679477933Sym2 a6989586621679477930 arg) => ShowsPrec_6989586621679477933Sym1 a6989586621679477930 a6989586621679477931
- data ShowsPrec_6989586621679477933Sym0 :: (~>) Nat ((~>) Peano ((~>) Symbol Symbol)) where
- ShowsPrec_6989586621679477933Sym0KindInference :: forall a6989586621679477930 arg. SameKind (Apply ShowsPrec_6989586621679477933Sym0 arg) (ShowsPrec_6989586621679477933Sym1 arg) => ShowsPrec_6989586621679477933Sym0 a6989586621679477930
- type family TFHelper_6989586621679478474 (a :: Peano) (a :: Peano) :: Peano where ...
- type TFHelper_6989586621679478474Sym2 (a6989586621679478472 :: Peano) (a6989586621679478473 :: Peano) = TFHelper_6989586621679478474 a6989586621679478472 a6989586621679478473
- data TFHelper_6989586621679478474Sym1 (a6989586621679478472 :: Peano) :: (~>) Peano Peano where
- TFHelper_6989586621679478474Sym1KindInference :: forall a6989586621679478472 a6989586621679478473 arg. SameKind (Apply (TFHelper_6989586621679478474Sym1 a6989586621679478472) arg) (TFHelper_6989586621679478474Sym2 a6989586621679478472 arg) => TFHelper_6989586621679478474Sym1 a6989586621679478472 a6989586621679478473
- data TFHelper_6989586621679478474Sym0 :: (~>) Peano ((~>) Peano Peano) where
- TFHelper_6989586621679478474Sym0KindInference :: forall a6989586621679478472 arg. SameKind (Apply TFHelper_6989586621679478474Sym0 arg) (TFHelper_6989586621679478474Sym1 arg) => TFHelper_6989586621679478474Sym0 a6989586621679478472
- type family TFHelper_6989586621679478490 (a :: Peano) (a :: Peano) :: Peano where ...
- type TFHelper_6989586621679478490Sym2 (a6989586621679478488 :: Peano) (a6989586621679478489 :: Peano) = TFHelper_6989586621679478490 a6989586621679478488 a6989586621679478489
- data TFHelper_6989586621679478490Sym1 (a6989586621679478488 :: Peano) :: (~>) Peano Peano where
- TFHelper_6989586621679478490Sym1KindInference :: forall a6989586621679478488 a6989586621679478489 arg. SameKind (Apply (TFHelper_6989586621679478490Sym1 a6989586621679478488) arg) (TFHelper_6989586621679478490Sym2 a6989586621679478488 arg) => TFHelper_6989586621679478490Sym1 a6989586621679478488 a6989586621679478489
- data TFHelper_6989586621679478490Sym0 :: (~>) Peano ((~>) Peano Peano) where
- TFHelper_6989586621679478490Sym0KindInference :: forall a6989586621679478488 arg. SameKind (Apply TFHelper_6989586621679478490Sym0 arg) (TFHelper_6989586621679478490Sym1 arg) => TFHelper_6989586621679478490Sym0 a6989586621679478488
- type family TFHelper_6989586621679478506 (a :: Peano) (a :: Peano) :: Peano where ...
- type TFHelper_6989586621679478506Sym2 (a6989586621679478504 :: Peano) (a6989586621679478505 :: Peano) = TFHelper_6989586621679478506 a6989586621679478504 a6989586621679478505
- data TFHelper_6989586621679478506Sym1 (a6989586621679478504 :: Peano) :: (~>) Peano Peano where
- TFHelper_6989586621679478506Sym1KindInference :: forall a6989586621679478504 a6989586621679478505 arg. SameKind (Apply (TFHelper_6989586621679478506Sym1 a6989586621679478504) arg) (TFHelper_6989586621679478506Sym2 a6989586621679478504 arg) => TFHelper_6989586621679478506Sym1 a6989586621679478504 a6989586621679478505
- data TFHelper_6989586621679478506Sym0 :: (~>) Peano ((~>) Peano Peano) where
- TFHelper_6989586621679478506Sym0KindInference :: forall a6989586621679478504 arg. SameKind (Apply TFHelper_6989586621679478506Sym0 arg) (TFHelper_6989586621679478506Sym1 arg) => TFHelper_6989586621679478506Sym0 a6989586621679478504
- type family Abs_6989586621679478521 (a :: Peano) :: Peano where ...
- type Abs_6989586621679478521Sym1 (a6989586621679478520 :: Peano) = Abs_6989586621679478521 a6989586621679478520
- data Abs_6989586621679478521Sym0 :: (~>) Peano Peano where
- Abs_6989586621679478521Sym0KindInference :: forall a6989586621679478520 arg. SameKind (Apply Abs_6989586621679478521Sym0 arg) (Abs_6989586621679478521Sym1 arg) => Abs_6989586621679478521Sym0 a6989586621679478520
- type family Signum_6989586621679478530 (a :: Peano) :: Peano where ...
- type Signum_6989586621679478530Sym1 (a6989586621679478529 :: Peano) = Signum_6989586621679478530 a6989586621679478529
- data Signum_6989586621679478530Sym0 :: (~>) Peano Peano where
- Signum_6989586621679478530Sym0KindInference :: forall a6989586621679478529 arg. SameKind (Apply Signum_6989586621679478530Sym0 arg) (Signum_6989586621679478530Sym1 arg) => Signum_6989586621679478530Sym0 a6989586621679478529
- type family Let6989586621679478541Scrutinee_6989586621679463510 n where ...
- type Let6989586621679478541Scrutinee_6989586621679463510Sym1 n6989586621679478540 = Let6989586621679478541Scrutinee_6989586621679463510 n6989586621679478540
- data Let6989586621679478541Scrutinee_6989586621679463510Sym0 n6989586621679478540 where
- Let6989586621679478541Scrutinee_6989586621679463510Sym0KindInference :: forall n6989586621679478540 arg. SameKind (Apply Let6989586621679478541Scrutinee_6989586621679463510Sym0 arg) (Let6989586621679478541Scrutinee_6989586621679463510Sym1 arg) => Let6989586621679478541Scrutinee_6989586621679463510Sym0 n6989586621679478540
- type family Let6989586621679478545Scrutinee_6989586621679463512 n where ...
- type Let6989586621679478545Scrutinee_6989586621679463512Sym1 n6989586621679478540 = Let6989586621679478545Scrutinee_6989586621679463512 n6989586621679478540
- data Let6989586621679478545Scrutinee_6989586621679463512Sym0 n6989586621679478540 where
- Let6989586621679478545Scrutinee_6989586621679463512Sym0KindInference :: forall n6989586621679478540 arg. SameKind (Apply Let6989586621679478545Scrutinee_6989586621679463512Sym0 arg) (Let6989586621679478545Scrutinee_6989586621679463512Sym1 arg) => Let6989586621679478545Scrutinee_6989586621679463512Sym0 n6989586621679478540
- type family Case_6989586621679478547 n t where ...
- type family Case_6989586621679478543 n t where ...
- type family FromInteger_6989586621679478536 (a :: Nat) :: Peano where ...
- type FromInteger_6989586621679478536Sym1 (a6989586621679478535 :: Nat) = FromInteger_6989586621679478536 a6989586621679478535
- data FromInteger_6989586621679478536Sym0 :: (~>) Nat Peano where
- FromInteger_6989586621679478536Sym0KindInference :: forall a6989586621679478535 arg. SameKind (Apply FromInteger_6989586621679478536Sym0 arg) (FromInteger_6989586621679478536Sym1 arg) => FromInteger_6989586621679478536Sym0 a6989586621679478535
- type family Equals_6989586621679478552 (a :: Peano) (b :: Peano) :: Bool where ...
- data SPeano :: Peano -> Type where
- sAddPeano :: forall (t :: Peano) (t :: Peano). Sing t -> Sing t -> Sing (Apply (Apply AddPeanoSym0 t) t :: Peano)
- sSubtractPeano :: forall (t :: Peano) (t :: Peano). Sing t -> Sing t -> Sing (Apply (Apply SubtractPeanoSym0 t) t :: Peano)
- sMultPeano :: forall (t :: Peano) (t :: Peano). Sing t -> Sing t -> Sing (Apply (Apply MultPeanoSym0 t) t :: Peano)
- sN0 :: Sing (N0Sym0 :: Peano)
- sN1 :: Sing (N1Sym0 :: Peano)
- sN2 :: Sing (N2Sym0 :: Peano)
- sN3 :: Sing (N3Sym0 :: Peano)
- sN4 :: Sing (N4Sym0 :: Peano)
- sN5 :: Sing (N5Sym0 :: Peano)
- sN6 :: Sing (N6Sym0 :: Peano)
- sN7 :: Sing (N7Sym0 :: Peano)
- sN8 :: Sing (N8Sym0 :: Peano)
- sN9 :: Sing (N9Sym0 :: Peano)
- sN10 :: Sing (N10Sym0 :: Peano)
- sN24 :: Sing (N24Sym0 :: Peano)
- n24 :: Peano
- n10 :: Peano
- n9 :: Peano
- n8 :: Peano
- n7 :: Peano
- n6 :: Peano
- n5 :: Peano
- n4 :: Peano
- n3 :: Peano
- n2 :: Peano
- n1 :: Peano
- n0 :: Peano
- multPeano :: Peano -> Peano -> Peano
- subtractPeano :: Peano -> Peano -> Peano
- addPeano :: Peano -> Peano -> Peano
- ltSuccProof :: forall (n :: Peano) (m :: Peano) proxy. ('S n < 'S m) ~ 'True => proxy n -> proxy m -> (n < m) :~: 'True
- data Fin :: Peano -> Type where
- toIntFin :: Fin n -> Int
- fin :: forall total n. (n < total) ~ 'True => Sing total -> Sing n -> Fin total
- fin_ :: forall total n. (SingI total, (n < total) ~ 'True) => Sing n -> Fin total
- data SFin :: forall n. Fin n -> Type where
- data IFin :: Peano -> Peano -> Type where
- toFinIFin :: IFin n m -> Fin n
- toIntIFin :: IFin n m -> Int
- ifin :: forall total n. (n < total) ~ 'True => Sing total -> Sing n -> IFin total n
- ifin_ :: forall total n. (SingI total, (n < total) ~ 'True) => Sing n -> IFin total n
- data SIFin :: forall n m. IFin n m -> Type where
- data HList :: (k -> Type) -> [k] -> Type where
- EmptyHList :: HList f '[]
- (:<) :: forall (f :: k -> Type) (a :: k) (as :: [k]). f a -> HList f as -> HList f (a ': as)
- pattern ConsHList :: (f a :: Type) -> HList f as -> HList f (a ': as)
- data Vec (n :: Peano) :: Type -> Type where
- pattern ConsVec :: (a :: Type) -> Vec n a -> Vec ('S n) a
- genVec_ :: SingI n => (Fin n -> a) -> Vec n a
- genVec :: SPeano n -> (Fin n -> a) -> Vec n a
- indexVec :: Fin n -> Vec n a -> a
- singletonVec :: a -> Vec N1 a
- replaceVec :: Sing n -> a -> Vec n a
- imapVec :: forall n a b. (Fin n -> a -> b) -> Vec n a -> Vec n b
- replaceVec_ :: SingI n => a -> Vec n a
- apVec :: (a -> b -> c) -> Vec n a -> Vec n b -> Vec n c
- onHeadVec :: (a -> a) -> Vec ('S n) a -> Vec ('S n) a
- dropVec :: Sing m -> Vec (m + n) a -> Vec n a
- takeVec :: IFin n m -> Vec n a -> Vec m a
- updateAtVec :: Fin n -> (a -> a) -> Vec n a -> Vec n a
- setAtVec :: Fin n -> a -> Vec n a -> Vec n a
- fromListVec :: Sing n -> [a] -> Maybe (Vec n a)
- fromListVec_ :: SingI n => [a] -> Maybe (Vec n a)
- unsafeFromListVec :: Sing n -> [a] -> Vec n a
- unsafeFromListVec_ :: SingI n => [a] -> Vec n a
- type family MatrixTF (ns :: [Peano]) (a :: Type) :: Type where ...
- newtype Matrix ns a = Matrix {}
- type MatrixTFSym2 (ns :: [Peano]) (t :: Type) = MatrixTF ns t :: Type
- data MatrixTFSym1 (ns :: [Peano]) (z :: TyFun Type Type) = forall (arg :: Type).SameKind (Apply (MatrixTFSym1 ns) arg) (MatrixTFSym2 ns arg) => MatrixTFSym1KindInference
- data MatrixTFSym0 (l :: TyFun [Peano] (Type ~> Type)) = forall (arg :: [Peano]).SameKind (Apply MatrixTFSym0 arg) (MatrixTFSym1 arg) => MatrixTFSym0KindInference
- eqSingMatrix :: forall (peanos :: [Peano]) (a :: Type). Eq a => Sing peanos -> Matrix peanos a -> Matrix peanos a -> Bool
- ordSingMatrix :: forall (peanos :: [Peano]) (a :: Type). Ord a => Sing peanos -> Matrix peanos a -> Matrix peanos a -> Ordering
- compareSingMatrix :: forall (peanos :: [Peano]) (a :: Type) (c :: Type). (a -> a -> c) -> c -> (c -> c -> c) -> Sing peanos -> Matrix peanos a -> Matrix peanos a -> c
- fmapSingMatrix :: forall (peanos :: [Peano]) (a :: Type) (b :: Type). Sing peanos -> (a -> b) -> Matrix peanos a -> Matrix peanos b
- consMatrix :: Matrix ns a -> Matrix (n ': ns) a -> Matrix ('S n ': ns) a
- toListMatrix :: forall (peanos :: [Peano]) (a :: Type). Sing peanos -> Matrix peanos a -> [a]
- genMatrix :: forall (ns :: [Peano]) (a :: Type). Sing ns -> (HList Fin ns -> a) -> Matrix ns a
- genMatrix_ :: SingI ns => (HList Fin ns -> a) -> Matrix ns a
- indexMatrix :: HList Fin ns -> Matrix ns a -> a
- imapMatrix :: forall (ns :: [Peano]) a b. Sing ns -> (HList Fin ns -> a -> b) -> Matrix ns a -> Matrix ns b
- imapMatrix_ :: SingI ns => (HList Fin ns -> a -> b) -> Matrix ns a -> Matrix ns b
- onMatrixTF :: (MatrixTF ns a -> MatrixTF ms b) -> Matrix ns a -> Matrix ms b
- onMatrix :: (Matrix ns a -> Matrix ms b) -> MatrixTF ns a -> MatrixTF ms b
- updateAtMatrix :: HList Fin ns -> (a -> a) -> Matrix ns a -> Matrix ns a
- setAtMatrix :: HList Fin ns -> a -> Matrix ns a -> Matrix ns a
Documentation
Instances
data SSym0 :: (~>) Peano Peano where Source #
Constructors
| SSym0KindInference :: forall t6989586621679475479 arg. SameKind (Apply SSym0 arg) (SSym1 arg) => SSym0 t6989586621679475479 |
Instances
| SuppressUnusedWarnings SSym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI SSym0 Source # | |
| type Apply SSym0 (t6989586621679475479 :: Peano) Source # | |
Defined in Termonad.Config.Vec | |
type family SubtractPeano (a :: Peano) (a :: Peano) :: Peano where ... Source #
Equations
| SubtractPeano Z _ = ZSym0 | |
| SubtractPeano a Z = a | |
| SubtractPeano (S a) (S b) = Apply (Apply SubtractPeanoSym0 a) b |
data SubtractPeanoSym0 :: (~>) Peano ((~>) Peano Peano) where Source #
Constructors
| SubtractPeanoSym0KindInference :: forall a6989586621679475487 arg. SameKind (Apply SubtractPeanoSym0 arg) (SubtractPeanoSym1 arg) => SubtractPeanoSym0 a6989586621679475487 |
Instances
| SuppressUnusedWarnings SubtractPeanoSym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI SubtractPeanoSym0 Source # | |
Defined in Termonad.Config.Vec Methods | |
| type Apply SubtractPeanoSym0 (a6989586621679475487 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply SubtractPeanoSym0 (a6989586621679475487 :: Peano) = SubtractPeanoSym1 a6989586621679475487 | |
data SubtractPeanoSym1 (a6989586621679475487 :: Peano) :: (~>) Peano Peano where Source #
Constructors
| SubtractPeanoSym1KindInference :: forall a6989586621679475487 a6989586621679475488 arg. SameKind (Apply (SubtractPeanoSym1 a6989586621679475487) arg) (SubtractPeanoSym2 a6989586621679475487 arg) => SubtractPeanoSym1 a6989586621679475487 a6989586621679475488 |
Instances
| SuppressUnusedWarnings (SubtractPeanoSym1 a6989586621679475487 :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI d => SingI (SubtractPeanoSym1 d :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods sing :: Sing (SubtractPeanoSym1 d) Source # | |
| type Apply (SubtractPeanoSym1 a6989586621679475487 :: TyFun Peano Peano -> Type) (a6989586621679475488 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply (SubtractPeanoSym1 a6989586621679475487 :: TyFun Peano Peano -> Type) (a6989586621679475488 :: Peano) = SubtractPeano a6989586621679475487 a6989586621679475488 | |
type SubtractPeanoSym2 (a6989586621679475487 :: Peano) (a6989586621679475488 :: Peano) = SubtractPeano a6989586621679475487 a6989586621679475488 Source #
data AddPeanoSym0 :: (~>) Peano ((~>) Peano Peano) where Source #
Constructors
| AddPeanoSym0KindInference :: forall a6989586621679475494 arg. SameKind (Apply AddPeanoSym0 arg) (AddPeanoSym1 arg) => AddPeanoSym0 a6989586621679475494 |
Instances
| SuppressUnusedWarnings AddPeanoSym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI AddPeanoSym0 Source # | |
Defined in Termonad.Config.Vec Methods sing :: Sing AddPeanoSym0 Source # | |
| type Apply AddPeanoSym0 (a6989586621679475494 :: Peano) Source # | |
Defined in Termonad.Config.Vec | |
data AddPeanoSym1 (a6989586621679475494 :: Peano) :: (~>) Peano Peano where Source #
Constructors
| AddPeanoSym1KindInference :: forall a6989586621679475494 a6989586621679475495 arg. SameKind (Apply (AddPeanoSym1 a6989586621679475494) arg) (AddPeanoSym2 a6989586621679475494 arg) => AddPeanoSym1 a6989586621679475494 a6989586621679475495 |
Instances
| SuppressUnusedWarnings (AddPeanoSym1 a6989586621679475494 :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI d => SingI (AddPeanoSym1 d :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods sing :: Sing (AddPeanoSym1 d) Source # | |
| type Apply (AddPeanoSym1 a6989586621679475494 :: TyFun Peano Peano -> Type) (a6989586621679475495 :: Peano) Source # | |
Defined in Termonad.Config.Vec | |
type AddPeanoSym2 (a6989586621679475494 :: Peano) (a6989586621679475495 :: Peano) = AddPeano a6989586621679475494 a6989586621679475495 Source #
data MultPeanoSym0 :: (~>) Peano ((~>) Peano Peano) where Source #
Constructors
| MultPeanoSym0KindInference :: forall a6989586621679475481 arg. SameKind (Apply MultPeanoSym0 arg) (MultPeanoSym1 arg) => MultPeanoSym0 a6989586621679475481 |
Instances
| SuppressUnusedWarnings MultPeanoSym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI MultPeanoSym0 Source # | |
Defined in Termonad.Config.Vec Methods sing :: Sing MultPeanoSym0 Source # | |
| type Apply MultPeanoSym0 (a6989586621679475481 :: Peano) Source # | |
Defined in Termonad.Config.Vec | |
data MultPeanoSym1 (a6989586621679475481 :: Peano) :: (~>) Peano Peano where Source #
Constructors
| MultPeanoSym1KindInference :: forall a6989586621679475481 a6989586621679475482 arg. SameKind (Apply (MultPeanoSym1 a6989586621679475481) arg) (MultPeanoSym2 a6989586621679475481 arg) => MultPeanoSym1 a6989586621679475481 a6989586621679475482 |
Instances
| SuppressUnusedWarnings (MultPeanoSym1 a6989586621679475481 :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| SingI d => SingI (MultPeanoSym1 d :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods sing :: Sing (MultPeanoSym1 d) Source # | |
| type Apply (MultPeanoSym1 a6989586621679475481 :: TyFun Peano Peano -> Type) (a6989586621679475482 :: Peano) Source # | |
Defined in Termonad.Config.Vec | |
type MultPeanoSym2 (a6989586621679475481 :: Peano) (a6989586621679475482 :: Peano) = MultPeano a6989586621679475481 a6989586621679475482 Source #
type family Compare_6989586621679477240 (a :: Peano) (a :: Peano) :: Ordering where ... Source #
Equations
| Compare_6989586621679477240 Z Z = Apply (Apply (Apply FoldlSym0 ThenCmpSym0) EQSym0) '[] | |
| Compare_6989586621679477240 (S a_6989586621679475469) (S b_6989586621679475471) = Apply (Apply (Apply FoldlSym0 ThenCmpSym0) EQSym0) (Apply (Apply (:@#@$) (Apply (Apply CompareSym0 a_6989586621679475469) b_6989586621679475471)) '[]) | |
| Compare_6989586621679477240 Z (S _) = LTSym0 | |
| Compare_6989586621679477240 (S _) Z = GTSym0 |
type Compare_6989586621679477240Sym2 (a6989586621679477238 :: Peano) (a6989586621679477239 :: Peano) = Compare_6989586621679477240 a6989586621679477238 a6989586621679477239 Source #
data Compare_6989586621679477240Sym1 (a6989586621679477238 :: Peano) :: (~>) Peano Ordering where Source #
Constructors
| Compare_6989586621679477240Sym1KindInference :: forall a6989586621679477238 a6989586621679477239 arg. SameKind (Apply (Compare_6989586621679477240Sym1 a6989586621679477238) arg) (Compare_6989586621679477240Sym2 a6989586621679477238 arg) => Compare_6989586621679477240Sym1 a6989586621679477238 a6989586621679477239 |
Instances
| SuppressUnusedWarnings (Compare_6989586621679477240Sym1 a6989586621679477238 :: TyFun Peano Ordering -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (Compare_6989586621679477240Sym1 a6989586621679477238 :: TyFun Peano Ordering -> Type) (a6989586621679477239 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply (Compare_6989586621679477240Sym1 a6989586621679477238 :: TyFun Peano Ordering -> Type) (a6989586621679477239 :: Peano) = Compare_6989586621679477240 a6989586621679477238 a6989586621679477239 | |
data Compare_6989586621679477240Sym0 :: (~>) Peano ((~>) Peano Ordering) where Source #
Constructors
| Compare_6989586621679477240Sym0KindInference :: forall a6989586621679477238 arg. SameKind (Apply Compare_6989586621679477240Sym0 arg) (Compare_6989586621679477240Sym1 arg) => Compare_6989586621679477240Sym0 a6989586621679477238 |
Instances
| SuppressUnusedWarnings Compare_6989586621679477240Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply Compare_6989586621679477240Sym0 (a6989586621679477238 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply Compare_6989586621679477240Sym0 (a6989586621679477238 :: Peano) = Compare_6989586621679477240Sym1 a6989586621679477238 | |
type family ShowsPrec_6989586621679477933 (a :: Nat) (a :: Peano) (a :: Symbol) :: Symbol where ... Source #
Equations
| ShowsPrec_6989586621679477933 _ Z a_6989586621679477941 = Apply (Apply ShowStringSym0 (FromString "Z")) a_6989586621679477941 | |
| ShowsPrec_6989586621679477933 p_6989586621679475473 (S arg_6989586621679475475) a_6989586621679477943 = Apply (Apply (Apply ShowParenSym0 (Apply (Apply (>@#@$) p_6989586621679475473) (FromInteger 10))) (Apply (Apply (.@#@$) (Apply ShowStringSym0 (FromString "S "))) (Apply (Apply ShowsPrecSym0 (FromInteger 11)) arg_6989586621679475475))) a_6989586621679477943 |
type ShowsPrec_6989586621679477933Sym3 (a6989586621679477930 :: Nat) (a6989586621679477931 :: Peano) (a6989586621679477932 :: Symbol) = ShowsPrec_6989586621679477933 a6989586621679477930 a6989586621679477931 a6989586621679477932 Source #
data ShowsPrec_6989586621679477933Sym2 (a6989586621679477930 :: Nat) (a6989586621679477931 :: Peano) :: (~>) Symbol Symbol where Source #
Constructors
| ShowsPrec_6989586621679477933Sym2KindInference :: forall a6989586621679477930 a6989586621679477931 a6989586621679477932 arg. SameKind (Apply (ShowsPrec_6989586621679477933Sym2 a6989586621679477930 a6989586621679477931) arg) (ShowsPrec_6989586621679477933Sym3 a6989586621679477930 a6989586621679477931 arg) => ShowsPrec_6989586621679477933Sym2 a6989586621679477930 a6989586621679477931 a6989586621679477932 |
Instances
| SuppressUnusedWarnings (ShowsPrec_6989586621679477933Sym2 a6989586621679477931 a6989586621679477930 :: TyFun Symbol Symbol -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (ShowsPrec_6989586621679477933Sym2 a6989586621679477931 a6989586621679477930 :: TyFun Symbol Symbol -> Type) (a6989586621679477932 :: Symbol) Source # | |
Defined in Termonad.Config.Vec type Apply (ShowsPrec_6989586621679477933Sym2 a6989586621679477931 a6989586621679477930 :: TyFun Symbol Symbol -> Type) (a6989586621679477932 :: Symbol) = ShowsPrec_6989586621679477933 a6989586621679477931 a6989586621679477930 a6989586621679477932 | |
data ShowsPrec_6989586621679477933Sym1 (a6989586621679477930 :: Nat) :: (~>) Peano ((~>) Symbol Symbol) where Source #
Constructors
| ShowsPrec_6989586621679477933Sym1KindInference :: forall a6989586621679477930 a6989586621679477931 arg. SameKind (Apply (ShowsPrec_6989586621679477933Sym1 a6989586621679477930) arg) (ShowsPrec_6989586621679477933Sym2 a6989586621679477930 arg) => ShowsPrec_6989586621679477933Sym1 a6989586621679477930 a6989586621679477931 |
Instances
| SuppressUnusedWarnings (ShowsPrec_6989586621679477933Sym1 a6989586621679477930 :: TyFun Peano (Symbol ~> Symbol) -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (ShowsPrec_6989586621679477933Sym1 a6989586621679477930 :: TyFun Peano (Symbol ~> Symbol) -> Type) (a6989586621679477931 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply (ShowsPrec_6989586621679477933Sym1 a6989586621679477930 :: TyFun Peano (Symbol ~> Symbol) -> Type) (a6989586621679477931 :: Peano) = ShowsPrec_6989586621679477933Sym2 a6989586621679477930 a6989586621679477931 | |
data ShowsPrec_6989586621679477933Sym0 :: (~>) Nat ((~>) Peano ((~>) Symbol Symbol)) where Source #
Constructors
| ShowsPrec_6989586621679477933Sym0KindInference :: forall a6989586621679477930 arg. SameKind (Apply ShowsPrec_6989586621679477933Sym0 arg) (ShowsPrec_6989586621679477933Sym1 arg) => ShowsPrec_6989586621679477933Sym0 a6989586621679477930 |
Instances
| SuppressUnusedWarnings ShowsPrec_6989586621679477933Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply ShowsPrec_6989586621679477933Sym0 (a6989586621679477930 :: Nat) Source # | |
Defined in Termonad.Config.Vec type Apply ShowsPrec_6989586621679477933Sym0 (a6989586621679477930 :: Nat) = ShowsPrec_6989586621679477933Sym1 a6989586621679477930 | |
type family TFHelper_6989586621679478474 (a :: Peano) (a :: Peano) :: Peano where ... Source #
Equations
| TFHelper_6989586621679478474 a_6989586621679478476 a_6989586621679478478 = Apply (Apply AddPeanoSym0 a_6989586621679478476) a_6989586621679478478 |
type TFHelper_6989586621679478474Sym2 (a6989586621679478472 :: Peano) (a6989586621679478473 :: Peano) = TFHelper_6989586621679478474 a6989586621679478472 a6989586621679478473 Source #
data TFHelper_6989586621679478474Sym1 (a6989586621679478472 :: Peano) :: (~>) Peano Peano where Source #
Constructors
| TFHelper_6989586621679478474Sym1KindInference :: forall a6989586621679478472 a6989586621679478473 arg. SameKind (Apply (TFHelper_6989586621679478474Sym1 a6989586621679478472) arg) (TFHelper_6989586621679478474Sym2 a6989586621679478472 arg) => TFHelper_6989586621679478474Sym1 a6989586621679478472 a6989586621679478473 |
Instances
| SuppressUnusedWarnings (TFHelper_6989586621679478474Sym1 a6989586621679478472 :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (TFHelper_6989586621679478474Sym1 a6989586621679478472 :: TyFun Peano Peano -> Type) (a6989586621679478473 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply (TFHelper_6989586621679478474Sym1 a6989586621679478472 :: TyFun Peano Peano -> Type) (a6989586621679478473 :: Peano) = TFHelper_6989586621679478474 a6989586621679478472 a6989586621679478473 | |
data TFHelper_6989586621679478474Sym0 :: (~>) Peano ((~>) Peano Peano) where Source #
Constructors
| TFHelper_6989586621679478474Sym0KindInference :: forall a6989586621679478472 arg. SameKind (Apply TFHelper_6989586621679478474Sym0 arg) (TFHelper_6989586621679478474Sym1 arg) => TFHelper_6989586621679478474Sym0 a6989586621679478472 |
Instances
| SuppressUnusedWarnings TFHelper_6989586621679478474Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply TFHelper_6989586621679478474Sym0 (a6989586621679478472 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply TFHelper_6989586621679478474Sym0 (a6989586621679478472 :: Peano) = TFHelper_6989586621679478474Sym1 a6989586621679478472 | |
type family TFHelper_6989586621679478490 (a :: Peano) (a :: Peano) :: Peano where ... Source #
Equations
| TFHelper_6989586621679478490 a_6989586621679478492 a_6989586621679478494 = Apply (Apply SubtractPeanoSym0 a_6989586621679478492) a_6989586621679478494 |
type TFHelper_6989586621679478490Sym2 (a6989586621679478488 :: Peano) (a6989586621679478489 :: Peano) = TFHelper_6989586621679478490 a6989586621679478488 a6989586621679478489 Source #
data TFHelper_6989586621679478490Sym1 (a6989586621679478488 :: Peano) :: (~>) Peano Peano where Source #
Constructors
| TFHelper_6989586621679478490Sym1KindInference :: forall a6989586621679478488 a6989586621679478489 arg. SameKind (Apply (TFHelper_6989586621679478490Sym1 a6989586621679478488) arg) (TFHelper_6989586621679478490Sym2 a6989586621679478488 arg) => TFHelper_6989586621679478490Sym1 a6989586621679478488 a6989586621679478489 |
Instances
| SuppressUnusedWarnings (TFHelper_6989586621679478490Sym1 a6989586621679478488 :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (TFHelper_6989586621679478490Sym1 a6989586621679478488 :: TyFun Peano Peano -> Type) (a6989586621679478489 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply (TFHelper_6989586621679478490Sym1 a6989586621679478488 :: TyFun Peano Peano -> Type) (a6989586621679478489 :: Peano) = TFHelper_6989586621679478490 a6989586621679478488 a6989586621679478489 | |
data TFHelper_6989586621679478490Sym0 :: (~>) Peano ((~>) Peano Peano) where Source #
Constructors
| TFHelper_6989586621679478490Sym0KindInference :: forall a6989586621679478488 arg. SameKind (Apply TFHelper_6989586621679478490Sym0 arg) (TFHelper_6989586621679478490Sym1 arg) => TFHelper_6989586621679478490Sym0 a6989586621679478488 |
Instances
| SuppressUnusedWarnings TFHelper_6989586621679478490Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply TFHelper_6989586621679478490Sym0 (a6989586621679478488 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply TFHelper_6989586621679478490Sym0 (a6989586621679478488 :: Peano) = TFHelper_6989586621679478490Sym1 a6989586621679478488 | |
type family TFHelper_6989586621679478506 (a :: Peano) (a :: Peano) :: Peano where ... Source #
Equations
| TFHelper_6989586621679478506 a_6989586621679478508 a_6989586621679478510 = Apply (Apply MultPeanoSym0 a_6989586621679478508) a_6989586621679478510 |
type TFHelper_6989586621679478506Sym2 (a6989586621679478504 :: Peano) (a6989586621679478505 :: Peano) = TFHelper_6989586621679478506 a6989586621679478504 a6989586621679478505 Source #
data TFHelper_6989586621679478506Sym1 (a6989586621679478504 :: Peano) :: (~>) Peano Peano where Source #
Constructors
| TFHelper_6989586621679478506Sym1KindInference :: forall a6989586621679478504 a6989586621679478505 arg. SameKind (Apply (TFHelper_6989586621679478506Sym1 a6989586621679478504) arg) (TFHelper_6989586621679478506Sym2 a6989586621679478504 arg) => TFHelper_6989586621679478506Sym1 a6989586621679478504 a6989586621679478505 |
Instances
| SuppressUnusedWarnings (TFHelper_6989586621679478506Sym1 a6989586621679478504 :: TyFun Peano Peano -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (TFHelper_6989586621679478506Sym1 a6989586621679478504 :: TyFun Peano Peano -> Type) (a6989586621679478505 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply (TFHelper_6989586621679478506Sym1 a6989586621679478504 :: TyFun Peano Peano -> Type) (a6989586621679478505 :: Peano) = TFHelper_6989586621679478506 a6989586621679478504 a6989586621679478505 | |
data TFHelper_6989586621679478506Sym0 :: (~>) Peano ((~>) Peano Peano) where Source #
Constructors
| TFHelper_6989586621679478506Sym0KindInference :: forall a6989586621679478504 arg. SameKind (Apply TFHelper_6989586621679478506Sym0 arg) (TFHelper_6989586621679478506Sym1 arg) => TFHelper_6989586621679478506Sym0 a6989586621679478504 |
Instances
| SuppressUnusedWarnings TFHelper_6989586621679478506Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply TFHelper_6989586621679478506Sym0 (a6989586621679478504 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply TFHelper_6989586621679478506Sym0 (a6989586621679478504 :: Peano) = TFHelper_6989586621679478506Sym1 a6989586621679478504 | |
type family Abs_6989586621679478521 (a :: Peano) :: Peano where ... Source #
Equations
| Abs_6989586621679478521 a_6989586621679478523 = Apply IdSym0 a_6989586621679478523 |
type Abs_6989586621679478521Sym1 (a6989586621679478520 :: Peano) = Abs_6989586621679478521 a6989586621679478520 Source #
data Abs_6989586621679478521Sym0 :: (~>) Peano Peano where Source #
Constructors
| Abs_6989586621679478521Sym0KindInference :: forall a6989586621679478520 arg. SameKind (Apply Abs_6989586621679478521Sym0 arg) (Abs_6989586621679478521Sym1 arg) => Abs_6989586621679478521Sym0 a6989586621679478520 |
Instances
| SuppressUnusedWarnings Abs_6989586621679478521Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply Abs_6989586621679478521Sym0 (a6989586621679478520 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply Abs_6989586621679478521Sym0 (a6989586621679478520 :: Peano) = Abs_6989586621679478521 a6989586621679478520 | |
type family Signum_6989586621679478530 (a :: Peano) :: Peano where ... Source #
Equations
| Signum_6989586621679478530 Z = ZSym0 | |
| Signum_6989586621679478530 (S _) = Apply SSym0 ZSym0 |
type Signum_6989586621679478530Sym1 (a6989586621679478529 :: Peano) = Signum_6989586621679478530 a6989586621679478529 Source #
data Signum_6989586621679478530Sym0 :: (~>) Peano Peano where Source #
Constructors
| Signum_6989586621679478530Sym0KindInference :: forall a6989586621679478529 arg. SameKind (Apply Signum_6989586621679478530Sym0 arg) (Signum_6989586621679478530Sym1 arg) => Signum_6989586621679478530Sym0 a6989586621679478529 |
Instances
| SuppressUnusedWarnings Signum_6989586621679478530Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply Signum_6989586621679478530Sym0 (a6989586621679478529 :: Peano) Source # | |
Defined in Termonad.Config.Vec type Apply Signum_6989586621679478530Sym0 (a6989586621679478529 :: Peano) = Signum_6989586621679478530 a6989586621679478529 | |
type family Let6989586621679478541Scrutinee_6989586621679463510 n where ... Source #
Equations
| Let6989586621679478541Scrutinee_6989586621679463510 n = Apply (Apply (<@#@$) n) (FromInteger 0) |
type Let6989586621679478541Scrutinee_6989586621679463510Sym1 n6989586621679478540 = Let6989586621679478541Scrutinee_6989586621679463510 n6989586621679478540 Source #
data Let6989586621679478541Scrutinee_6989586621679463510Sym0 n6989586621679478540 where Source #
Constructors
| Let6989586621679478541Scrutinee_6989586621679463510Sym0KindInference :: forall n6989586621679478540 arg. SameKind (Apply Let6989586621679478541Scrutinee_6989586621679463510Sym0 arg) (Let6989586621679478541Scrutinee_6989586621679463510Sym1 arg) => Let6989586621679478541Scrutinee_6989586621679463510Sym0 n6989586621679478540 |
Instances
| SuppressUnusedWarnings (Let6989586621679478541Scrutinee_6989586621679463510Sym0 :: TyFun k1 Bool -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (Let6989586621679478541Scrutinee_6989586621679463510Sym0 :: TyFun k1 Bool -> Type) (n6989586621679478540 :: k1) Source # | |
Defined in Termonad.Config.Vec type Apply (Let6989586621679478541Scrutinee_6989586621679463510Sym0 :: TyFun k1 Bool -> Type) (n6989586621679478540 :: k1) = Let6989586621679478541Scrutinee_6989586621679463510 n6989586621679478540 | |
type family Let6989586621679478545Scrutinee_6989586621679463512 n where ... Source #
Equations
| Let6989586621679478545Scrutinee_6989586621679463512 n = Apply (Apply (==@#@$) n) (FromInteger 0) |
type Let6989586621679478545Scrutinee_6989586621679463512Sym1 n6989586621679478540 = Let6989586621679478545Scrutinee_6989586621679463512 n6989586621679478540 Source #
data Let6989586621679478545Scrutinee_6989586621679463512Sym0 n6989586621679478540 where Source #
Constructors
| Let6989586621679478545Scrutinee_6989586621679463512Sym0KindInference :: forall n6989586621679478540 arg. SameKind (Apply Let6989586621679478545Scrutinee_6989586621679463512Sym0 arg) (Let6989586621679478545Scrutinee_6989586621679463512Sym1 arg) => Let6989586621679478545Scrutinee_6989586621679463512Sym0 n6989586621679478540 |
Instances
| SuppressUnusedWarnings (Let6989586621679478545Scrutinee_6989586621679463512Sym0 :: TyFun k1 Bool -> Type) Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply (Let6989586621679478545Scrutinee_6989586621679463512Sym0 :: TyFun k1 Bool -> Type) (n6989586621679478540 :: k1) Source # | |
Defined in Termonad.Config.Vec type Apply (Let6989586621679478545Scrutinee_6989586621679463512Sym0 :: TyFun k1 Bool -> Type) (n6989586621679478540 :: k1) = Let6989586621679478545Scrutinee_6989586621679463512 n6989586621679478540 | |
type family Case_6989586621679478547 n t where ... Source #
Equations
| Case_6989586621679478547 n 'True = ZSym0 | |
| Case_6989586621679478547 n 'False = Apply SSym0 (Apply FromIntegerSym0 (Apply (Apply (-@#@$) n) (FromInteger 1))) |
type family Case_6989586621679478543 n t where ... Source #
Equations
| Case_6989586621679478543 n 'True = Apply ErrorSym0 (FromString "Num Peano fromInteger: n is negative") | |
| Case_6989586621679478543 n 'False = Case_6989586621679478547 n (Let6989586621679478545Scrutinee_6989586621679463512Sym1 n) |
type family FromInteger_6989586621679478536 (a :: Nat) :: Peano where ... Source #
type FromInteger_6989586621679478536Sym1 (a6989586621679478535 :: Nat) = FromInteger_6989586621679478536 a6989586621679478535 Source #
data FromInteger_6989586621679478536Sym0 :: (~>) Nat Peano where Source #
Constructors
| FromInteger_6989586621679478536Sym0KindInference :: forall a6989586621679478535 arg. SameKind (Apply FromInteger_6989586621679478536Sym0 arg) (FromInteger_6989586621679478536Sym1 arg) => FromInteger_6989586621679478536Sym0 a6989586621679478535 |
Instances
| SuppressUnusedWarnings FromInteger_6989586621679478536Sym0 Source # | |
Defined in Termonad.Config.Vec Methods suppressUnusedWarnings :: () Source # | |
| type Apply FromInteger_6989586621679478536Sym0 (a6989586621679478535 :: Nat) Source # | |
Defined in Termonad.Config.Vec type Apply FromInteger_6989586621679478536Sym0 (a6989586621679478535 :: Nat) = FromInteger_6989586621679478536 a6989586621679478535 | |
type family Equals_6989586621679478552 (a :: Peano) (b :: Peano) :: Bool where ... Source #
Equations
| Equals_6989586621679478552 Z Z = TrueSym0 | |
| Equals_6989586621679478552 (S a) (S b) = (==) a b | |
| Equals_6989586621679478552 (_ :: Peano) (_ :: Peano) = FalseSym0 |
data SPeano :: Peano -> Type where Source #
Instances
| SDecide Peano => TestEquality SPeano Source # | |
Defined in Termonad.Config.Vec Methods testEquality :: forall (a :: k) (b :: k). SPeano a -> SPeano b -> Maybe (a :~: b) | |
| SDecide Peano => TestCoercion SPeano Source # | |
Defined in Termonad.Config.Vec Methods testCoercion :: forall (a :: k) (b :: k). SPeano a -> SPeano b -> Maybe (Coercion a b) | |
| ShowSing Peano => Show (SPeano z) Source # | |
sAddPeano :: forall (t :: Peano) (t :: Peano). Sing t -> Sing t -> Sing (Apply (Apply AddPeanoSym0 t) t :: Peano) Source #
sSubtractPeano :: forall (t :: Peano) (t :: Peano). Sing t -> Sing t -> Sing (Apply (Apply SubtractPeanoSym0 t) t :: Peano) Source #
sMultPeano :: forall (t :: Peano) (t :: Peano). Sing t -> Sing t -> Sing (Apply (Apply MultPeanoSym0 t) t :: Peano) Source #
ltSuccProof :: forall (n :: Peano) (m :: Peano) proxy. ('S n < 'S m) ~ 'True => proxy n -> proxy m -> (n < m) :~: 'True Source #
data IFin :: Peano -> Peano -> Type where Source #
Constructors
| IFZ :: forall (n :: Peano). IFin ('S n) 'Z | |
| IFS :: forall (n :: Peano) (m :: Peano). !(IFin n m) -> IFin ('S n) ('S m) |
Instances
| Eq (IFin x y) Source # | |
| Ord (IFin x y) Source # | |
Defined in Termonad.Config.Vec | |
| Show (IFin x y) Source # | |
| SingKind (IFin n m) Source # | |
| SingI ('IFZ :: IFin ('S n) 'Z) Source # | |
| SingI n2 => SingI ('IFS n2 :: IFin ('S n1) ('S m)) Source # | |
| type Sing Source # | |
Defined in Termonad.Config.Vec | |
| type Demote (IFin n m) Source # | |
Defined in Termonad.Config.Vec | |
ifin :: forall total n. (n < total) ~ 'True => Sing total -> Sing n -> IFin total n Source #
Create an IFin.
>>>ifin (sing :: Sing N5) (sing :: Sing N2) :: IFin N5 N2IFS (IFS IFZ)
ifin_ :: forall total n. (SingI total, (n < total) ~ 'True) => Sing n -> IFin total n Source #
Create an IFin, but take the total implicitly.
>>>ifin_ @N5 (sing :: Sing N3) :: IFin N5 N3IFS (IFS (IFS IFZ))
data HList :: (k -> Type) -> [k] -> Type where Source #
Constructors
| EmptyHList :: HList f '[] | |
| (:<) :: forall (f :: k -> Type) (a :: k) (as :: [k]). f a -> HList f as -> HList f (a ': as) infixr 6 |
pattern ConsHList :: (f a :: Type) -> HList f as -> HList f (a ': as) Source #
Data constructor for :<.
data Vec (n :: Peano) :: Type -> Type where Source #
Instances
| SingI n => Monad (Vec n) Source # | |
| Functor (Vec n) Source # | |
| SingI n => Applicative (Vec n) Source # | |
| Foldable (Vec n) Source # | |
Defined in Termonad.Config.Vec Methods fold :: Monoid m => Vec n m -> m foldMap :: Monoid m => (a -> m) -> Vec n a -> m foldMap' :: Monoid m => (a -> m) -> Vec n a -> m foldr :: (a -> b -> b) -> b -> Vec n a -> b foldr' :: (a -> b -> b) -> b -> Vec n a -> b foldl :: (b -> a -> b) -> b -> Vec n a -> b foldl' :: (b -> a -> b) -> b -> Vec n a -> b foldr1 :: (a -> a -> a) -> Vec n a -> a foldl1 :: (a -> a -> a) -> Vec n a -> a elem :: Eq a => a -> Vec n a -> Bool maximum :: Ord a => Vec n a -> a | |
| SingI n => Distributive (Vec n) Source # | |
| SingI n => Representable (Vec n) Source # | |
| Eq a => Eq (Vec n a) Source # | |
| Ord a => Ord (Vec n a) Source # | |
| Show a => Show (Vec n a) Source # | |
| SingI n => MonoPointed (Vec n a) Source # | |
| MonoFoldable (Vec n a) Source # | |
Defined in Termonad.Config.Vec Methods ofoldMap :: Monoid m => (Element (Vec n a) -> m) -> Vec n a -> m Source # ofoldr :: (Element (Vec n a) -> b -> b) -> b -> Vec n a -> b Source # ofoldl' :: (a0 -> Element (Vec n a) -> a0) -> a0 -> Vec n a -> a0 Source # otoList :: Vec n a -> [Element (Vec n a)] Source # oall :: (Element (Vec n a) -> Bool) -> Vec n a -> Bool Source # oany :: (Element (Vec n a) -> Bool) -> Vec n a -> Bool Source # onull :: Vec n a -> Bool Source # olength :: Vec n a -> Int Source # olength64 :: Vec n a -> Int64 Source # ocompareLength :: Integral i => Vec n a -> i -> Ordering Source # otraverse_ :: Applicative f => (Element (Vec n a) -> f b) -> Vec n a -> f () Source # ofor_ :: Applicative f => Vec n a -> (Element (Vec n a) -> f b) -> f () Source # omapM_ :: Applicative m => (Element (Vec n a) -> m ()) -> Vec n a -> m () Source # oforM_ :: Applicative m => Vec n a -> (Element (Vec n a) -> m ()) -> m () Source # ofoldlM :: Monad m => (a0 -> Element (Vec n a) -> m a0) -> a0 -> Vec n a -> m a0 Source # ofoldMap1Ex :: Semigroup m => (Element (Vec n a) -> m) -> Vec n a -> m Source # ofoldr1Ex :: (Element (Vec n a) -> Element (Vec n a) -> Element (Vec n a)) -> Vec n a -> Element (Vec n a) Source # ofoldl1Ex' :: (Element (Vec n a) -> Element (Vec n a) -> Element (Vec n a)) -> Vec n a -> Element (Vec n a) Source # headEx :: Vec n a -> Element (Vec n a) Source # lastEx :: Vec n a -> Element (Vec n a) Source # unsafeHead :: Vec n a -> Element (Vec n a) Source # unsafeLast :: Vec n a -> Element (Vec n a) Source # maximumByEx :: (Element (Vec n a) -> Element (Vec n a) -> Ordering) -> Vec n a -> Element (Vec n a) Source # minimumByEx :: (Element (Vec n a) -> Element (Vec n a) -> Ordering) -> Vec n a -> Element (Vec n a) Source # | |
| MonoFunctor (Vec n a) Source # | |
| type Rep (Vec n) Source # | |
Defined in Termonad.Config.Vec | |
| type Element (Vec n a) Source # | |
Defined in Termonad.Config.Vec | |
singletonVec :: a -> Vec N1 a Source #
replaceVec :: Sing n -> a -> Vec n a Source #
replaceVec_ :: SingI n => a -> Vec n a Source #
unsafeFromListVec :: Sing n -> [a] -> Vec n a Source #
unsafeFromListVec_ :: SingI n => [a] -> Vec n a Source #
Instances
type MatrixTFSym2 (ns :: [Peano]) (t :: Type) = MatrixTF ns t :: Type Source #
data MatrixTFSym1 (ns :: [Peano]) (z :: TyFun Type Type) Source #
Constructors
| forall (arg :: Type).SameKind (Apply (MatrixTFSym1 ns) arg) (MatrixTFSym2 ns arg) => MatrixTFSym1KindInference |
Instances
| type Apply (MatrixTFSym1 l1 :: TyFun Type Type -> Type) (l2 :: Type) Source # | |
Defined in Termonad.Config.Vec | |
data MatrixTFSym0 (l :: TyFun [Peano] (Type ~> Type)) Source #
Constructors
| forall (arg :: [Peano]).SameKind (Apply MatrixTFSym0 arg) (MatrixTFSym1 arg) => MatrixTFSym0KindInference |
Instances
| type Apply MatrixTFSym0 (l :: [Peano]) Source # | |
Defined in Termonad.Config.Vec | |
eqSingMatrix :: forall (peanos :: [Peano]) (a :: Type). Eq a => Sing peanos -> Matrix peanos a -> Matrix peanos a -> Bool Source #
ordSingMatrix :: forall (peanos :: [Peano]) (a :: Type). Ord a => Sing peanos -> Matrix peanos a -> Matrix peanos a -> Ordering Source #
compareSingMatrix :: forall (peanos :: [Peano]) (a :: Type) (c :: Type). (a -> a -> c) -> c -> (c -> c -> c) -> Sing peanos -> Matrix peanos a -> Matrix peanos a -> c Source #
fmapSingMatrix :: forall (peanos :: [Peano]) (a :: Type) (b :: Type). Sing peanos -> (a -> b) -> Matrix peanos a -> Matrix peanos b Source #
toListMatrix :: forall (peanos :: [Peano]) (a :: Type). Sing peanos -> Matrix peanos a -> [a] Source #
genMatrix :: forall (ns :: [Peano]) (a :: Type). Sing ns -> (HList Fin ns -> a) -> Matrix ns a Source #