[Haskell-cafe] Typeclass question

Miguel Mitrofanov miguelimo38 at yandex.ru
Sat Dec 27 14:51:52 EST 2008


There is a disadvantage in GADTs. They don't work in Hugs.

On 27 Dec 2008, at 22:49, Luke Palmer wrote:

> On Sat, Dec 27, 2008 at 12:44 PM, David Menendez <dave at zednenem.com>  
> wrote:
> On Sat, Dec 27, 2008 at 2:24 PM, Andrew Wagner <wagner.andrew at 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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list