On Sat, Dec 27, 2008 at 12:44 PM, David Menendez <d...@zednenem.com> wrote:
> On Sat, Dec 27, 2008 at 2:24 PM, Andrew Wagner <wagner.and...@gmail.com> > 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
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe