shithub: MicroHs

ref: e467aff8da3a13f7faac971b3d0752ecd8d6e348
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)