我想列出所有的固定声明,在准引号单,以便我能够传递所有的infix运算符从Haskell语法到我的准引用语法。
请问template-haskell中有什么方法可以让我这么做吗?我什么都找不到。
谢谢。
发布于 2022-02-22 21:46:53
经过进一步的研究,我在Gitlab中找到了相关的问题。
这个问题不可能有任何解决方案,因为编译逻辑不允许这样做。例如,可能有两个模板,这两个模板都会进行新的固定声明,因此,如果两个模板都试图列出它们,它们可能会以一个没完没了的循环结束。
如果唯一的原因,为什么我要得到所有的固定声明是解析infix运算符以后将由Haskell使用,建议使用UInfixE Exp Exp Exp。
使用UInfixE创建的任意树稍后将由Haskell编译器处理到正确的"InfixE"树,因此该表达式将使用所有的固定性声明正确处理。
语法粗心和类型忽略示例:模板传递的UInfixE 1 * (UnfixE 2 + 3)在编译的后期阶段(当所有固定声明都已知时)转换为InfixE (InfixE 1 * 2) + 3。
https://stackoverflow.com/questions/71007488
复制相似问题