{-# LANGUAGE TemplateHaskell #-}
{-# LANGUGE QuasiQuotes #-}

{- Main.hs -}
module TH.Main where

-- Import our template "pr"
import TH.Printf

-- The splice operator $ takes the Haskell source code
-- generated at compile time by "pr" and splices it into
-- the argument of "putStrLn".
main = putStrLn ( $(pr "Hello") )

-- import Control.Lens
-- data Foo a = Foo { _fooArgs :: [String], _fooValue :: a }
-- makeLenses ''Foo

-- main = putStrLn "hello"

-- longString = [str| hello |]


baz = 'a'

sillyString = [e|baz|]