根据维基百科,下面的代码应该编译,
{-# LANGUAGE RankNTypes #-}
data T = MkT (exists a. Show a => a)
但是,我没有运气。 ghci 7.2.2抱怨,
test.hs:2:23:
Illegal symbol '.' in type
Perhaps you intended -XRankNTypes or similar flag
to enable explicit-forall syntax: forall <tvs>. <type>
Failed, modules loaded: none.
原始链接位于:http://en.wikibooks.org/wiki/Haskell/Existentially_quantified_types
提前致谢!
答案 0 :(得分:5)
您链接的页面提到exists
作为关键字不存在,但您可以使用forall
获得相同的行为。请注意,您的特定示例标题为“(psuedo)haskell”。
他们说这相当于:
data T = forall a. MkT a
与
MkT :: forall a. a -> T
答案 1 :(得分:1)
在ghci模式中,它应该是这样的。
ghci> :set -XRankNTypes