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,但它仍然无法正常工作,如您所见。 –