2
如何查找類型運算符名稱?這不起作用:模板Haskell - 如何查找類型運算符名稱?
IssueTH.hs:
{-# LANGUAGE TemplateHaskell #-}
module IssueTH where
import Language.Haskell.TH
f :: Q [Dec]
f = do
Just n <- lookupTypeName "GHC.TypeLits.*"
return []
Issue.hs:
{-# LANGUAGE TemplateHaskell #-}
module Issue where
import IssueTH
$f
ghc Issue.hs
失敗消息:
Pattern match failure in do expression at IssueTH.hs
與"GHC.TypeLits.(*)"
或"*"
沒有按更換"GHC.TypeLits.*"
也不行。
1.您在第二個文件中缺少'import GHC.TypeLits',即使使用非運算符類型也不行。修復後,這仍然看起來像一個錯誤,所以我[報告](https://ghc.haskell.org/trac/ghc/ticket/11046#ticket)。 –
我[剛剛發現](https://ghc.haskell.org/trac/ghc/ticket/11046#comment:1),它適用於類型操作符以':'開頭,所以我的猜測是函數wasn'當他們的語法被放開時,t更新。 –
@ØrjanJohansen,我查找完全限定的「GHC.TypeLits。*」,我不認爲我需要導入GHC.TypeLits,但它仍然無法正常工作,如您所見。 –