no non-typevariable in instance declarations

Marcin 'Qrczak' Kowalczyk qrczak@knm.org.pl
14 Nov 2000 19:41:21 GMT


Tue, 14 Nov 2000 16:17:48 -0200, José Romildo Malaquias <romildo@urano.iceb.ufop.br> pisze:

> But this is not relevant to my question. Removing the instance
> declaration
> 
>   instance C Integer where
>       ty _ = "Integer"
> 
> from the program (so that there is no instance overlapping now)
> does not help.

In this case your instance would be the only one possible (any other
would overlap) and it could be equally well written as a plain function.

Actually Haskell 98 has more severe restriction than non-overlapping
instances. The instance head must be a type constructor applied to
as many distinct type variables as needed to let the kinds match.
"instance Foo [Int]" is as non-standard as "instance Foo a".

-- 
 __("<  Marcin Kowalczyk * qrczak@knm.org.pl http://qrczak.ids.net.pl/
 \__/
  ^^                      SYGNATURA ZASTĘPCZA
QRCZAK