> Hi All:
> I've been working through some details in these papers ,  and
> noticed a language pragma configuration that I hope you can confirm.
> When using explicit foralls in a data constructor, it appears that GHC
> 7.4.2 requires Rank2Types in the Language pragma for what the papers
> consider rank 1 types.
> Here's an example:
> data T = TC (forall a b. a -> b -> a)
> Am I correct, or is there another extension? The ExplicitForAll does not
> appear to support rank 1 types in data constructors.
There is the PolymorphicComponents extension precisely for this use case.
Thanks Francesco. And I did verify that ExplicitForAll does in fact
allow Rank 1 Types in functions like the following ...
f :: (forall a. a -> a)
On Thu, 2012-07-05 at 16:28 +0100, Francesco Mazzoli wrote:
> At Thu, 05 Jul 2012 11:18:00 -0400,
> rickmurphy wrote:
> > data T = TC (forall a b. a -> b -> a)
> The type of `TC' will be `(forall a b. a -> b -> a) -> T', a Rank-2
> Francesco * Often in error, never in doubt
> Haskell-Cafe mailing list
> [hidden email] > http://www.haskell.org/mailman/listinfo/haskell-cafe >