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
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to