shithub: MicroHs

ref: 5f1eafa05adeb65e2cd1f6db83d9cbd88c2cb0d9
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)