2

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

data F a = C1 Nat | C2 Bool Nat a

Nat简直在哪里data Nat = Z | S Nat

原则上,这可以通过 Haskell 的“自由定理”包来回答,但它太老了,无法在我可以合理安装的任何 GHC 版本下编译。

4

1 回答 1

6

一个免费定理的在线生成器,不久前它关闭时,我创建了一个完全在浏览器中运行的替代 UIreflex-dom (使用)。

但更深层次的问题是,在这些包的意义上,自由定理是多态函数的属性,所以为了回答你的问题,你必须给出一个map你感兴趣的自由定理的函数(比如)。

于 2018-11-17T14:40:08.353 回答