[Haskell-cafe] Existentials for multi-parameter type classes?

David Feuer david.feuer at gmail.com
Fri Mar 20 05:15:07 UTC 2015


I highly recommend writing all existentials using GADT syntax. It is *far*
more intuitive.

David
On Mar 20, 2015 1:12 AM, "Lyle Kopnicky" <lists at qseep.net> wrote:

> 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 at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150320/4657c796/attachment.html>


More information about the Haskell-Cafe mailing list