Wang Meng wrote
I understand that existentially bound types cannot escape.

For example, say we have
data Foo = forall a. Foo Int a

Then we cannot define a function
extract (Foo i a) = a

However,this limitation makes it extremly difficult to program with local
quantifications.Is there any way to by pass this?
It occasionally happens that I *know* what type is (or at least ought to be) inside
an existential type, but unfortunately GHC doesn't, and I need to get the value out.
This can be solved using dynamic types, for example you declare the datatype as

> data Foo = forall a. Typeable a => Foo Int a

(or something like that), then you can extract the a value by going to Dynamic and back.

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to