[Haskell-cafe] Existentials for multi-parameter type classes?
Michael Sloan
mgsloan at gmail.com
Fri Mar 20 05:15:08 UTC 2015
There is!
data Collision = forall a b. Collidable a b => Collision {collider1 ::
a, collider2 :: b}
On Thu, Mar 19, 2015 at 10:11 PM, 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
>
More information about the Haskell-Cafe
mailing list