-- test the representation of literals and also explicit type annotations {-# LANGUAGE TemplateHaskell #-} module Main where import Language.Haskell.TH main :: IO () main = mapM_ putStrLn [show an_integral, show an_int, show an_integer, show an_char, show an_string, show an_fractional, show an_float, show an_double] an_integral :: Integer an_integral = $( [| 42 |] ) an_int :: Int an_int = $( [| 42 :: Int |] ) an_integer :: Integer an_integer = $( [| 98765432123456789876 :: Integer |] ) an_char :: Char an_char = $( [| 'x' |] ) an_string :: String an_string = $( [| "A String" |] ) an_fractional :: Double an_fractional = $( [| 1.2 |] ) an_float :: Float an_float = $( [| 1.2 :: Float |] ) an_double :: Double an_double = $( [| 1.2 :: Double |] )