I'm a little confused. Why is this allowed:

> data Blah = Blah
> 
> instance Eq Blah where
>         x == y = True

But not this:

> class Stringable a where
>         toString :: a -> String
> 
> instance Stringable [Char] where
>         toString = id

(Resulting in:)

> Illegal instance declaration for `Stringable [Char]'
>         (All instance types must be of the form (T a1 ... an)
>          where a1 ... an are distinct type *variables*
>          Use -XFlexibleInstances if you want to disable this.)
>     In the instance declaration for `Stringable [Char]'

'Blah' isn't a type variable, is it? Is my brain just not working right
today?

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to