MJD*_*MJD 4 reflection haskell ghc ghci
我想生成这个图的修订版,它出现在 Haskell98 标准中:
在 2019 年,我将通过生成我想要的图的描述并将其提供给 Graphviz 来做到这一点。我昨天做的一个概念验证实现,只告诉有一个叫做 的东西Monad
,可以自动生成这个图:
概念验证程序相当糟糕,因为它遍历图形的方式是:info
向 GHCi发送命令并尝试解析输出。我对进一步推动这种方法不感兴趣。
正确的做法是弄清楚 GHC 在内部如何表示类和实例信息,然后使用其 API 直接查询这些数据结构。
我花了相当多的时间在GHC API 文档中四处寻找,但我还没有找到我需要的入口点。
我想我想向 GHC 索取当前范围内所有类型类和实例信息的名称列表,以及对每个类型的约束的描述。
有什么好的方法来处理这个问题?我应该去哪里找?
谢谢。