【发布时间】:2016-07-29 06:07:39
【问题描述】:
有没有办法浏览或搜索重写规则?当我使用 -ddump-rule-firings 或 -ddump-rule-rewrites 之类的标志时,我只会得到触发的规则的名称和它导致的重写,而不是实际的规则本身......
理想情况下,我希望通过 GHCi 了解哪些重写规则在范围内,但实际上我愿意满足于基础中存在的重写规则的详尽列表。
【问题讨论】:
-
我只想为他们服务。它们以
{-# RULES开头。不幸的是,他们不是一等公民。 -
这是一个有效的请求。并且至少应该很简单地查询 GHCi 以获取具有某个常量作为 LHS 上最外层符号的所有规则(因为规则被附加到它们上)。我建议您为它打开一个功能请求。对于 GHC 的初学者贡献者来说,这将是一项不错的任务!
-
@JoachimBreitner 如果没有人对此有一个好的答案,我会继续这样做 - 如果它被接受,甚至可能会尝试实施它(我一直在寻找一个开始黑客攻击的好地方多年来一直在 GHC 上)!
-
我认为目前没有其他的。您可以使用
haskell-src-exts来解析所有RULE编译指示,但这对于您现在想要的内容可能有点过头了。