之间有什么区别?

data SomeException = forall e . Exception e => SomeException e

data SomeException = Exception e => SomeException e

为什么我们需要 forall ?
link to source

最佳答案

第一个称为 Existential type 。第二个甚至不会编译。

基本上,如果您希望某些变量仅出现在右侧(= 的右侧),则必须添加 forall
它允许您例如创建异构列表,例如[SomeException] 可以包含 SomeException e 列表,其中每个元素的 e 不同。

关于haskell - haskell 中的 SomeException 数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54886974/

10-13 06:04