On 10/11/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Niklas Broberg wrote:
> Annotate the data type using a GADT:
> data MyData a where
> MyCon :: MyData a
The range of the data constructor MyCon is the entire type MyData a --
so the above data type is the regular algebraic data type, and can be
written just as
data MyData a = MyCon
which, some say, makes the fact 'a' is phantom, and the overall intent
clearer.
One may hear phrases how generally awesome and indispensable GADT are;
it is distressing to realize then that sometimes (often?) one is
talking about regular algebraic data types, only in the `where'
syntax.
It helps to reduce confusion about the merits of various features and
additions to Haskell if we use the term GADT exclusively for truly
_generalized_ algebraic data types.
Right you are, I stand corrected.
/Niklas
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell