【发布时间】:2023-03-26 13:01:02
【问题描述】:
给定一个表达式foo,我可以声明一个顶级函数
bar = foo
并通过reifying bar 获取foo 的类型为Type:
case reify 'bar of
VarI _ t _ _ -> t
有没有直接获取foo 类型的方法,而不创建bar 的冗余定义?理想情况下,作为 Exp -> Q Type 类型的函数。
【问题讨论】:
-
为什么直接
reify 'foo不适合你? -
@NikitaVolkov
foo这里只是代表一个表达式,比如1 + 2 + 3,不是名字。 -
哦。好吧,既然
reify是 TH 的唯一具体化函数,而且它只接受名字,我猜你已经很受约束了。
标签: haskell types expression template-haskell reify