
I highly recommend writing all existentials using GADT syntax. It is *far*
more intuitive.
David
On Mar 20, 2015 1:12 AM, "Lyle Kopnicky"
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
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe