{-# LANGUAGE AllowAmbiguousTypes #-} module Strongweak.Util.TypeNats where import GHC.TypeNats import GHC.Exts ( proxy# ) natVal'' :: forall n. KnownNat n => Natural natVal'' :: forall (n :: Nat). KnownNat n => Nat natVal'' = Proxy# n -> Nat forall (n :: Nat). KnownNat n => Proxy# n -> Nat natVal' (forall (a :: Nat). Proxy# a forall {k} (a :: k). Proxy# a proxy# @n) {-# INLINE natVal'' #-}