|
Re: no non-typevariable in instance declarations: msg#00058lang.haskell.general
On Tue, Nov 14, 2000 at 02:18:47PM -0800, Jeffrey R. Lewis wrote: > 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 Thanks, Jeff. I did not know about the -fallow-undecidable-instances option to GHC. As I am already using some extensions from GHC (existentialy quantified type variables, multiparameter type classes, implicit parameters, overlapping instances) I think I could use undecidable instances too. I hope new versions of the Haskell language will include them. 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: 00058, José Romildo Malaquias |
|---|---|
| Next by Date: | Re: no non-typevariable in instance declarations: 00058, Malcolm Wallace |
| Previous by Thread: | Re: no non-typevariable in instance declarationsi: 00058, Jeffrey R. Lewis |
| Next by Thread: | Re: no non-typevariable in instance declarations: 00058, Malcolm Wallace |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |