Proposal: Deprecate ExistentialQuantification

John Meacham john at repetae.net
Sun Jun 28 04:35:06 EDT 2009


On Sat, Jun 27, 2009 at 10:51:12AM -0400, Isaac Dupree wrote:
> Niklas Broberg wrote:
>>   data Foo =
>>     forall a . Show a => Foo a
>>
>> which uses ExistentialQuantification syntax, could be written as
>>
>>   data Foo where
>>     Foo :: forall a . Show a => a -> Foo
>
>> The downside is that we lose one level of granularity in the type
>> system. GADTs enables a lot more semantic possibilities for
>> constructors than ExistentialQuantification does, and baking the
>> latter into the former means we have no way of specifying that we
>> *only* want to use the capabilities of ExistentialQuantification.
>
> Is it easy algorithmically to look at a GADT and decide whether it has  
> only ExistentialQuantification features?  After all, IIRC, hugs and nhc  
> support ExistentialQuantification but their type systems might not be up  
> to the full generality of GADTs.  (GHC's wasn't even quite up to it for  
> quite a long time until around 6.8, when we finally got it right.)

Jhc also supports ExistentialQuantification but not full GADTs.

        John

-- 
John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/


More information about the Glasgow-haskell-users mailing list