GADT与存在量化类型(* forall *)

时间:2014-08-03 10:36:15

标签: haskell types gadt existential-type

可以使用 GADT 来表达存在量化类型

我看到 GADT 更通用 - data-type-extensions,第7.4.7节

何时最好使用存在量化类型然后 GADT ?使用 GADT 存在量化类型相比有任何缺点吗?

2 个答案:

答案 0 :(得分:11)

GADT出现的时间晚于存在感,并将它们概括为一般。我不知道任何缺点,并且总是在新代码中使用GADT语法,因为它更清晰。

documentation证实了这一点:

  

请注意,GADT样式的语法概括了存在类型。

答案 1 :(得分:2)

如果你使用最新版本的GHC,那么我就没有任何弊端。但在旧版本中,您可以以类型不安全的方式组合GADT和GeneralizedNewtypeDeriving。我不认为ExistentialQuantification可以实现同样的目标。