On 10/19/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > I never argued about convenience of GADTs. They can be quite handy > when dealing with existentials: GADT embody a safe cast and so spare > us form writing the boring casting code ourselves. And perhaps this is > the only compelling case for GADTs.
Speaking about casts, I was playing with using GADTs to create a non-extensible version of Data.Typeable and Data.Dynamic. I wonder if it's possible to write such a thing without GADTs (and unsafeCoerce, which is used in Data.Dynamic, IIRC). BTW, being non-extensible has some benefits, for example, I feel a bit uneasy when I use full blown Dynamics in Haskell (not that I do it that often). See code in the attachment. It has some functions which I didn't find in Data.Dynamics, actually one function: withDyn :: Dyn -> (forall a. Typed a => a -> b) -> b Best regards Tomasz _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe