[Haskell-cafe] double existential type

Bas van Dijk v.dijk.bas at gmail.com
Wed Mar 24 16:27:09 EDT 2010


On Wed, Mar 24, 2010 at 6:31 PM, Ozgur Akgun <ozgurakgun at gmail.com> wrote:
> What was I thinking?

A sensible thought if you asked me.

It's certainly a surprise to me that this isn't allowed. Because in
any other context binders, like lambdas and foralls, may be freely
nested. For example:

{-# LANGUAGE RankNTypes #-}
swap :: forall a. forall b. a -> b -> (a, b)
swap = \x -> \y -> (x,y)

{-# LANGUAGE PolymorphicComponents #-}
data Foo = Foo (forall a. forall b. a)

regards,

Bas


More information about the Haskell-Cafe mailing list