{-# LANGUAGE Safe #-} -- does template haskell, but no IO inside it module Test.Tasty.TH (moduleName) where import Language.Haskell.TH.Lib (thisModule) import Language.Haskell.TH.Syntax (Q, Exp(LitE), ModName(ModName), Lit(StringL), Module (Module)) moduleName :: Q Exp moduleName = do Module _ (ModName name) <- thisModule pure . LitE . StringL $ name