
27 Dec
2008
27 Dec
'08
2:49 p.m.
On Sat, Dec 27, 2008 at 12:44 PM, David Menendez
On Sat, Dec 27, 2008 at 2:24 PM, Andrew Wagner
wrote: I'm sure there's a way to do this, but it's escaping me at present. I want to do something like this:
data Foo = Bar a => Foo a Bool ...
That is, I want to create a new type, Foo, whose constructor takes both a Boolean and a value of a type of class Bar.
Try this:
{-# LANGUAGE ExistentialQuantification #-}
data Foo = forall a. Bar a => Foo a Bool
Though for existentials, I find GADT more natural (actually I find GADT more natural in most cases): data Foo where Foo :: Bar a => a -> Foo Luke