Benjamin Franksen wrote:
On Tuesday 16 August 2005 21:56, Keean Schupke wrote:
You can even use existential types to create lists of things with a
common interface, where you do not know in advance what types you may
need:
data XWrap = XWrap (forall a . Show a => a)
type ListXWrap = [XWrap]
You probably meant to write
data XWrap = forall a . Show a => XWrap a
or, in GADT style (which I find a bit more intuitive here):
data XWrap where
XWrap :: Show a => a -> XWrap
Yes I always get confused by the notation Haskell uses... I used explicit
universal quantification by mistake. I tried to think logically about
the encapsulation
existential types represent - and got the wrong form.
I for one would like to see the use of 'exists' as a keyword for
existential types, after
all different symbols are used in modal logic (upside-down-A for forall,
and backwards-E
for exists).
Regards,
Keean.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe