寻找一个“自由定理”

时间:2018-11-17 13:58:19

标签: haskell free-theorem

如何推导该类型的自由定理:

                   |
0 1 2 2 1 2 0 [0] 1|2 1 2 0 0 1 [1]
1 2 1 1 0 2 0 [0] 1|2 1 2 0 1 2 [0] 1 2 1 2 0 2 1 [1]
                   |

哪里data F a = C1 Nat | C2 Bool Nat a 就是Nat

原则上,可以通过Haskell的“自由定理”软件包来解决这个问题,但是它太老了,无法在我可以合理安装的任何GHC版本下进行编译。

1 个答案:

答案 0 :(得分:4)

an online generator for free theorems at,不久前我created an alternative UI掉下来了,它完全在浏览器中运行(使用reflex-dom)。

但是,更深层的问题是,从这些软件包的角度来看,自由定理是多态函数的属性,因此,要回答您的问题,您必须给出一个函数(例如{{ 1}}),您感兴趣的自由定理。