是否有功能/库/技术可以帮助为 TH 生成的实例生成正确/非冗余的上下文?

问题描述

是否有一个函数可以采用给定的上下文/[Pred] 并简化它?

我的意思的一些例子:

  • 如果上下文包含 Eq [a],请将其替换为 Eq a(因为它意味着更复杂的约束)
  • 如果上下文包含 Eq Int,则将其过滤掉
  • 删除重复项

用例:我已经实现了 TH functions 来派生实例,而这些实例又使用 fmap 之类的东西,因此它们需要上下文,我想生成不会生成冗余约束警告的实例.

我已经制作了一个 simplifyContext :: [Pred] -> Q [Pred] 帮助程序来执行此操作,但在我看来这似乎是一个常见的需求,我希望这可能已经存在于某个图书馆中,但我已经尝试找到它但还没有。或者,如果它不存在,那可能是因为我缺少一种更简单的技术..

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)