shithub: MicroHs

ref: 9c14fe1d1b58ab9dde5fa1ab9719c47118462bad
dir: /tests/TypeLits.hs/

View raw version
module TypeLits(main) where
import Prelude
import Data.TypeLits

data PS (s :: Symbol) = PS
data PN (s :: Nat) = PN

natValInt :: forall (n :: Nat) . KnownNat n => PN n -> Int
natValInt p = fromInteger (natVal p)

main :: IO ()
main = do
  print $ symbolVal (PS :: PS "hello")
  print $ natVal (PN :: PN 42)
  print $ natValInt (PN :: PN 42)