【发布时间】:2017-03-03 01:34:19
【问题描述】:
是否有一个库定义了定义有效 Haskell 类型的数据类型(可能是 GADT)。
为了解释,让我建议这可能是什么样子:
data A
data B
class Free t
instance Free A
instance Free B
x = Forall A (Forall B (Constraint (NumConstraint A)
(Constructor Function A (Constructor Function B A))))
这将表示:
forall a b. Num a => a -> b -> a
我并不是说我所建议的是一个好的实现,我只是想表明我的意思。
当然,如果您可以定义类型定义的语法,您就可以创建一个 GADT 来表示它。有什么已经这样做了吗?
【问题讨论】:
-
为什么是 GADT 而不是 ADT?
template-haskell是你要找的吗? -
我不介意它是否是 GADT,只要我能做到漂亮打印它们等。