{-# LANGUAGE TemplateHaskell, QuasiQuotes, ViewPatterns #-}

import Language.Haskell.TH
import Language.Haskell.TH.Quote

x = mkName "x"

thb = QuasiQuoter (const [| $(return . LamE [VarP x] $ VarE x) . id |])
                  undefined undefined undefined 

-- Gives correct output: "(\\x -> x) GHC.Base.. GHC.Base.id"
main = print . pprint =<< runQ [| $(return . LamE [VarP x] $ VarE x) . id |]
