
On Fri, 2009-01-16 at 15:21 -0800, Jonathan Cast wrote:
On Fri, 2009-01-16 at 18:14 -0500, Anton van Straaten wrote:
Niklas Broberg wrote:
I still think existential quantification is a step too far though. :-P
Seriously, existential quantification is a REALLY simple concept, that you would learn week two (or maybe three) in any introductory course on logic. In fact, I would argue that far more people probably know what existential quantification is than that know what a monoid is. :-)
Andrew's core objection here seems reasonable to me. It was this:
{-# LANGUAGE ExistentialQuantification #-} is an absurd name and should be changed to something that, at a minimum, tells you it's something to do with the type system.
But I suspect I part company from Andrew in thinking that something like ExistentiallyQuantifiedTypes would be a perfectly fine alternative.
+1
This focus on names is ridiculous. I agree that good names are beneficial, but they don't have to encode everything about the referent into themselves. Haskell is called "Haskell" not "StaticallyTypedPurelyFunctionalProgrammingLanguage." In this particular case, it's absurd. In this case the name is only of mnemonic value, other than that it could be called FraggleRock. Regardless of the name you are going to have to look up what it refers to (in the user's guide), or, having already done that earlier, just know what it means.
(Although shouldn't it really be ExistentiallyQuantifiedConstructorTypes or something? If GHC ever actually adds first-class existentials, what is Cabal going to call *that* then?)
FreeExistentials. FirstClassExistentials would also be reasonable. Though renaming the current LANGUAGE tag to LocalExistentialQuantification would be better.