【发布时间】:2012-01-16 06:56:41
【问题描述】:
根据维基百科,以下代码应该可以编译,
{-# 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
提前致谢!
【问题讨论】:
-
您需要使用
ExistentialQuantification标志来执行此操作,而无需GADTs -
@is7s,谢谢,“存在主义被 GADT 包含”这个答案对我特别有帮助,因为我在这种情况下熟悉它们。
标签: haskell ghc higher-rank-types