Contexts in Existential Types

Ashley Yakeley
Tue, 13 Mar 2001 19:36:42 -0800

Would it be appropriate for Haskell to be able to remember contexts in 
existential types? For instance, currently this does not work in Hugs:

class Charable a where
	obtainChar :: a -> Char

instance Charable Char where
	obtainChar c = c

data AnyCharable = forall c. (Charable c) => MkAnyCharable c

anyA = MkAnyCharable 'a'
recoverA = obtainChar ((\(MkAnyCharable c) -> c) anyA)

I believe allowing it to work would not amount to storing dynamic type 

Is this an overlooked hole or would it break the spirit of the language?

Ashley Yakeley, Seattle WA