是否可以使用模板haskell来获取当前文件的名称?

时间:2015-12-08 00:57:27

标签: haskell template-haskell

我最接近的是使用reifyModulethisModule,但这不起作用。

{-# LANGUAGE TemplateHaskell #-}
import Language.Haskell.TH
import Language.Haskell.TH.Syntax

main = putStrLn $(LitE . StringL . show <$> thisModule)

(不出所料)无论文件名如何都会返回Module (PkgName "main") (ModName "Main")

1 个答案:

答案 0 :(得分:4)

您可以使用location获取它。

{-# LANGUAGE TemplateHaskell #-}
import Language.Haskell.TH
import Language.Haskell.TH.Syntax

main = putStrLn $(LitE . StringL . loc_filename <$> location)