| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Nat
Synopsis
- data Nat
- type family NatPlus (a :: Nat) (a :: Nat) :: Nat where ...
- type family NatMul (a :: Nat) (a :: Nat) :: Nat where ...
- type family NatMinus (a :: Nat) (a :: Nat) :: Nat where ...
- type family NatAbs (a :: Nat) :: Nat where ...
- type family NatSignum (a :: Nat) :: Nat where ...
- natPlus :: Nat -> Nat -> Nat
- natMul :: Nat -> Nat -> Nat
- natMinus :: Nat -> Nat -> Nat
- natAbs :: Nat -> Nat
- natSignum :: Nat -> Nat
- someNatVal :: Integer -> Maybe (SomeSing Nat)
- type SNat = (Sing :: Nat -> Type)
- data family Sing (a :: k) :: Type
- class PNum a
- class SNum a
- data SSym0 :: (~>) Nat Nat where
- type SSym1 (t6989586621679098622 :: Nat) = S t6989586621679098622
- type ZSym0 = Z
- type family Lit n where ...
- data LitSym0 :: (~>) Nat Nat where
- type LitSym1 (n6989586621679117734 :: Nat) = Lit n6989586621679117734
- type SLit n = Sing (Lit n)
- sLit :: forall (n :: Nat). SingI (Lit n) => Sing (Lit n)
Documentation
Instances
| Eq Nat # | |
| Num Nat # | |
| Ord Nat # | |
| Show Nat # | |
| PShow Nat # | |
| SShow Nat => SShow Nat # | |
| PNum Nat # | |
| SNum Nat # | |
Defined in Data.Nat Methods (%+) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (+@#@$) t1) t2) # (%-) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (-@#@$) t1) t2) # (%*) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (*@#@$) t1) t2) # sNegate :: Sing t -> Sing (Apply NegateSym0 t) # sAbs :: Sing t -> Sing (Apply AbsSym0 t) # sSignum :: Sing t -> Sing (Apply SignumSym0 t) # sFromInteger :: Sing t -> Sing (Apply FromIntegerSym0 t) # | |
| POrd Nat # | |
| SOrd Nat => SOrd Nat # | |
Defined in Data.Nat Methods sCompare :: Sing t1 -> Sing t2 -> Sing (Apply (Apply CompareSym0 t1) t2) # (%<) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (<@#@$) t1) t2) # (%<=) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (<=@#@$) t1) t2) # (%>) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (>@#@$) t1) t2) # (%>=) :: Sing t1 -> Sing t2 -> Sing (Apply (Apply (>=@#@$) t1) t2) # sMax :: Sing t1 -> Sing t2 -> Sing (Apply (Apply MaxSym0 t1) t2) # sMin :: Sing t1 -> Sing t2 -> Sing (Apply (Apply MinSym0 t1) t2) # | |
| SEq Nat => SEq Nat # | |
| PEq Nat # | |
| SDecide Nat => SDecide Nat # | |
| SingKind Nat # | |
| SingI Z # | |
| SingI n => SingI (S n :: Nat) # | |
| Eq (SNat n) # | |
| Ord (SNat n) # | |
| ShowSing Nat => Show (Sing z) # | |
| SuppressUnusedWarnings LitSym0 # | |
Defined in Data.Nat Methods suppressUnusedWarnings :: () # | |
| SuppressUnusedWarnings SSym0 # | |
Defined in Data.Nat Methods suppressUnusedWarnings :: () # | |
| SingI SSym0 # | |
| SingI (TyCon1 S) # | |
| data Sing (a :: Nat) # | |
| type Demote Nat # | |
| type Show_ (arg :: Nat) # | |
| type FromInteger a # | |
Defined in Data.Nat type FromInteger a | |
| type Signum (a :: Nat) # | |
| type Abs (a :: Nat) # | |
| type Negate (arg :: Nat) # | |
| type ShowList (arg :: [Nat]) arg1 # | |
| type (a1 :: Nat) * (a2 :: Nat) # | |
| type (a1 :: Nat) - (a2 :: Nat) # | |
| type (a1 :: Nat) + (a2 :: Nat) # | |
| type Min (arg :: Nat) (arg1 :: Nat) # | |
| type Max (arg :: Nat) (arg1 :: Nat) # | |
| type (arg :: Nat) >= (arg1 :: Nat) # | |
| type (arg :: Nat) > (arg1 :: Nat) # | |
| type (arg :: Nat) <= (arg1 :: Nat) # | |
| type (arg :: Nat) < (arg1 :: Nat) # | |
| type Compare (a1 :: Nat) (a2 :: Nat) # | |
| type (x :: Nat) /= (y :: Nat) # | |
| type (a :: Nat) == (b :: Nat) # | |
| type ShowsPrec a1 (a2 :: Nat) a3 # | |
| type Apply LitSym0 (n6989586621679117734 :: Nat) # | |
| type Apply SSym0 (t6989586621679098622 :: Nat) # | |
data family Sing (a :: k) :: Type #
The singleton kind-indexed data family.
Instances
| Eq (SNat n) # | |
| Ord (SNat n) # | |
| ShowSing Nat => Show (Sing z) # | |
| data Sing (a :: Bool) | |
| data Sing (a :: Ordering) | |
| data Sing (n :: Nat) | |
| data Sing (n :: Symbol) | |
Defined in Data.Singletons.TypeLits.Internal | |
| data Sing (a :: ()) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (a :: Nat) # | |
| data Sing (a :: Void) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (a :: All) | |
| data Sing (a :: Any) | |
| data Sing (b :: [a]) | |
| data Sing (b :: Maybe a) | |
| data Sing (b :: Min a) | |
| data Sing (b :: Max a) | |
| data Sing (b :: First a) | |
| data Sing (b :: Last a) | |
| data Sing (a :: WrappedMonoid m) | |
Defined in Data.Singletons.Prelude.Semigroup.Internal data Sing (a :: WrappedMonoid m) where
| |
| data Sing (b :: Option a) | |
| data Sing (b :: Identity a) | |
| data Sing (b :: First a) | |
| data Sing (b :: Last a) | |
| data Sing (b :: Dual a) | |
| data Sing (b :: Sum a) | |
| data Sing (b :: Product a) | |
| data Sing (b :: Down a) | |
| data Sing (b :: NonEmpty a) | |
| data Sing (b :: Endo a) | |
| data Sing (b :: MinInternal a) | |
Defined in Data.Singletons.Prelude.Foldable data Sing (b :: MinInternal a) where
| |
| data Sing (b :: MaxInternal a) | |
Defined in Data.Singletons.Prelude.Foldable data Sing (b :: MaxInternal a) where
| |
| data Sing (c :: Either a b) | |
| data Sing (c :: (a, b)) | |
| data Sing (c :: Arg a b) | |
| newtype Sing (f :: k1 ~> k2) | |
| data Sing (b :: StateL s a) | |
| data Sing (b :: StateR s a) | |
| data Sing (d :: (a, b, c)) | |
| data Sing (c :: Const a b) | |
| data Sing (e :: (a, b, c, d)) | |
| data Sing (f :: (a, b, c, d, e)) | |
| data Sing (g :: (a, b, c, d, e, f)) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (h :: (a, b, c, d, e, f, g)) | |
Defined in Data.Singletons.Prelude.Instances | |
Minimal complete definition
(%+), (%*), sAbs, sSignum, sFromInteger
Instances
data SSym0 :: (~>) Nat Nat where #
Constructors
| SSym0KindInference :: forall t6989586621679098622 arg. SameKind (Apply SSym0 arg) (SSym1 arg) => SSym0 t6989586621679098622 |
Provides a shorthand for Nat-s using GHC.TypeLits, for example:
>>>:kind! Lit 3Lit 3 :: Nat = 'S ('S ('S 'Z))