
On 19/10/2007, Kalman Noel
data ExistsNumber = forall a. Num a => Number a
I'm without a Haskell compiler, but shouldn't that be "exists a."? IIRC forall will work too, but the "right" way to do it is "exists", right? So to avoid confusion, use "exists" rather than "forall" when you want existential rather than universal quantification. Also, you might want to instantiate the existential type in the class too. E.g. class Render a where render :: a -> IO () instance Render ... where -- lots of these data Renderable = exists a . Render a => Renderable a instance Render Renderable where render (Renderable a) = render a Now we can call "render" on both the actual renderable values themselves, as well as well as the "wrapped" ones. -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862