|
Re: no non-typevariable in instance declarations: msg#00057lang.haskell.general
On Tue, Nov 14, 2000 at 07:41:21PM +0000, Marcin 'Qrczak' Kowalczyk wrote: > Tue, 14 Nov 2000 16:17:48 -0200, José Romildo Malaquias > <romildo@xxxxxxxxxxxxxxxxxx> 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. Any instance for a no-Num type will not overlap: instance (Num a) => C a where ty _ = "NUM" instance C Char where ty _ = "CHAR" and the overloaded function cannot be 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". I am not understand the restriction well. I verified that both Hugs and GHC, when using extensions, accepts "instance C [Int]", but only Hugs accepts "instance (Num a) => C a". Where is this issue presented in a simple way easily understandable by regular Haskell programmers? Any pointers? Romildo -- Prof. José Romildo Malaquias <romildo@xxxxxxxxxxxx> Departamento de Computação Universidade Federal de Ouro Preto Brasil |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: no non-typevariable in instance declarations: 00057, Jeffrey R. Lewis |
|---|---|
| Next by Date: | Re: no non-typevariable in instance declarations: 00057, José Romildo Malaquias |
| Previous by Thread: | Re: no non-typevariable in instance declarationsi: 00057, Marcin 'Qrczak' Kowalczyk |
| Next by Thread: | Re: no non-typevariable in instance declarations: 00057, Jeffrey R. Lewis |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |