不幸的是,许多Template Haskell函数完全没有文档。一个这样的功能是report
。它需要Bool
和String
,并产生编译错误,并将指定的字符串作为错误消息。有没有人知道Bool
到底是怎么回事?尽我所知,两种价值完全相同......
答案 0 :(得分:9)
如果Bool
为True
,则会报告错误;如果是False
,则会报告“警告”,这意味着模板代码将继续运行以收集更多“警告”。
答案 1 :(得分:2)
查看源代码,report
调用qReport
,这是一个名为Quasi
的类的方法。 这个方法实际上有一些该死的文档 - 尽管只是一个小小的片段。我引用:
报告错误(
True
)或警告(False
)...但继续;使用fail
停止
所以它似乎使我的TH splice崩溃并带有相应的错误消息,我只需要调用fail
。希望这些信息对任何试图解决这个问题的人都有用......