GHC.TypeLits

# Kinds

data Nat

data Symbol

# Linking type and value level

class KnownNat n

natVal

class KnownSymbol n

symbolVal

data SomeNat

data SomeSymbol

someNatVal

someSymbolVal

sameNat

sameSymbol

# Functions on type literals

type x <= y

type family m <=? n :: Bool

type family m + n :: Nat

type family m * n :: Nat

type family m ^ n :: Nat

type family m - n :: Nat

type family CmpNat m n :: Ordering

type family CmpSymbol m n :: Ordering