|
Re: no non-typevariable in instance declarations: msg#00056lang.haskell.general
José Romildo Malaquias wrote: > On Tue, Nov 14, 2000 at 05:02:30PM +0000, Malcolm Wallace wrote: > > > class C a where > > > ty :: a -> String > > > instance (Num a) => C a where > > > ty _ = "NUM" > > > instance C Integer where > > > ty _ = "Integer" > > > > > Why GHC and NHC98 are more restrictive than Hugs? > > > > The instances for (Num a=> a) and Integer overlap, and are therefore > > forbidden by Haskell'98. > > 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. Both GHC and NHC98 still complains with the > same diagnostics as before. They are not accepting the > instance declaration > > instance (Num a) => C a where > ty _ = "NUM" > > because there is no non-type-variable component in the > instantiated type "a" above. > > Again, why they have this restrictions while Hugs has not? GHC doesn't have this restriction either, but since it's not Haskell 98, you don't get it without some effort ;-). The following combination of flags will convince GHC to like your program: -fallow-overlapping-instances -fallow-undecidable-instances --Jeff |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: no non-typevariable in instance declarations: 00056, Marcin 'Qrczak' Kowalczyk |
|---|---|
| Next by Date: | Re: no non-typevariable in instance declarations: 00056, José Romildo Malaquias |
| Previous by Thread: | Re: no non-typevariable in instance declarationsi: 00056, José Romildo Malaquias |
| Next by Thread: | Re: no non-typevariable in instance declarations: 00056, José Romildo Malaquias |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |