GHC.TypeNats

# Nat Kind

data Nat

# Linking type and value level

class KnownNat n

natVal

natVal'

data SomeNat

someNatVal

sameNat

# Functions on type literals

type x <= y

type family (m :: Nat) <=? (n :: Nat) :: Bool

type family (m :: Nat) + (n :: Nat) :: Nat

type family (m :: Nat) * (n :: Nat) :: Nat

type family (m :: Nat) ^ (n :: Nat) :: Nat

type family (m :: Nat) - (n :: Nat) :: Nat

type family CmpNat (m :: Nat) (n :: Nat) :: Ordering