    {-# LANGUAGE Safe #-}
    {-# LANGUAGE ExplicitNamespaces #-}
    {-# LANGUAGE PatternSynonyms #-}
    {-# LANGUAGE TypeOperators #-}
    {-# LANGUAGE NoStarIsType #-}

    -- |
    -- This module is an internal GHC module.  It declares the constants used
    -- in the implementation of type-level natural numbers.  The programmer interface
    -- for working with type-level naturals should be defined in a separate module.
    --
    -- @since 4.10.0.0
    --

    module GHC.TypeNats
        (-- *  Nat Kind
         Natural,
         Nat,
         -- *  Linking type and value level
         KnownNat(natSing),
         natVal,
         natVal',
         SomeNat(..),
         someNatVal,
         sameNat,
         decideNat,
         -- **  Singleton values
         SNat,
         pattern SNat,
         fromSNat,
         withSomeSNat,
         withKnownNat,
         -- *  Functions on type literals
         type (<=),
         type (<=?),
         type (+),
         type (*),
         type (^),
         type (-),
         CmpNat,
         cmpNat,
         Div,
         Mod,
         Log2
         ) where

    import GHC.Internal.TypeNats