| 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) :: *
- class PNum a
- class SNum a
- data SSym0 (l :: TyFun Nat Nat) = SameKind (Apply SSym0 arg) (SSym1 arg) => SSym0KindInference
- type SSym1 (t :: Nat) = S t
- type ZSym0 = Z
- type family Lit n where ...
- data LitSym0 (l :: TyFun Nat Nat) = SameKind (Apply LitSym0 arg) (LitSym1 arg) => LitSym0KindInference
- type LitSym1 (t :: Nat) = Lit t
- type SLit n = Sing (Lit n)
- sLit :: forall (n :: Nat). SingI (Lit n) => Sing (Lit n)
Documentation
Instances
data family Sing (a :: k) :: * #
The singleton kind-indexed data family.
Instances
| Eq (SNat n) # | |
| Ord (SNat n) # | |
| ShowSing Nat => Show (Sing z) # | |
| data Sing (z :: Bool) | |
| data Sing (z :: Ordering) | |
| data Sing (n :: Nat) | |
Defined in Data.Singletons.TypeLits.Internal | |
| data Sing (n :: Symbol) | |
Defined in Data.Singletons.TypeLits.Internal | |
| data Sing (z :: ()) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (z :: Nat) # | |
| data Sing (z :: Void) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (z :: [a]) | |
| data Sing (z :: Maybe a) | |
| data Sing (z :: NonEmpty a) | |
| data Sing (z :: Either a b) | |
| data Sing (z :: (a, b)) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (f :: k1 ~> k2) | |
| data Sing (z :: (a, b, c)) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (z :: (a, b, c, d)) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (z :: (a, b, c, d, e)) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (z :: (a, b, c, d, e, f)) | |
Defined in Data.Singletons.Prelude.Instances | |
| data Sing (z :: (a, b, c, d, e, f, g)) | |
Defined in Data.Singletons.Prelude.Instances | |
Minimal complete definition
(%+), (%*), sAbs, sSignum, sFromInteger
Instances
| SNum Nat | |
Defined in Data.Singletons.Prelude.Num 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) # | |
| 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) # | |
data SSym0 (l :: TyFun Nat Nat) Source #
Constructors
| SameKind (Apply SSym0 arg) (SSym1 arg) => SSym0KindInference |
type family Lit n where ... Source #
Provides a shorthand for Nat-s using GHC.TypeLits, for example:
>>>:kind! Lit 3Lit 3 :: Nat = 'S ('S ('S 'Z))