
20 Mar
2015
20 Mar
'15
5:11 a.m.
Hi folks, I know how to write existentially quantified data constructors for single-parameter type classes, but I'm having trouble doing it for multi-parameter type classes. Is it not possible, or am I just using the wrong syntax? I have this class: class Collidable a b where collideWith :: a -> b -> String And I tried to define an existentially quantified data constructor thusly: data Collision = forall a. (forall b. Collidable a b => Collision {collider1 :: a, collider2 :: b}) I get a parse error. So then I tried: data Collision = forall a. forall b. Collidable a b => Collision {collider1 :: a, collider2 :: b} I get a different parse error. Is there any way to make this work? Thanks, Lyle