Bruno Oliveira wrote: > On Tue, 27 Dec 2005 16:39:34 +0000, Chris Kuklewicz wrote: >>I was wondering if it this small snippet of code could be altered to >>require fewer OPTIONS -fallow-... switches. > > > Here is a partial solution using only -fglasgow-exts:
...deleted... > The problem of this solution is that, because we are using show in the > definition of swim for (a -> t), the strings are beeing printed with extra > "\"". > > *MyShow> main > Hello" ""World #"[17,18,19]"!" > I also think [4,5,6]" and "7" are ""cool""." The extra double quotes being what I am trying to avoid with MyShow > >>instance MyShow t => MyShow (String -> t) where >> swim s x = swim (s ++ x) This is interesting. It does remove the need for -fallow-undecidable-instances. Thanks. >>Could this be improved by TypeEq machinery? Is there a Haskell 98 way >>to make myShow work this way? > > > The problem of the previous solution is that you do not want, in the general > case, > use the default instance of Show for Strings. An alternative is to just > introduce > a newtype S (isomorphic to String) that allows you to handle Strings > differently: > ... deleted... > > By using the newtype S instead of Haskell String, you obtain an Haskell 98 > solution. I am not sure if this is good enough for you but it seems a good > compromise. > > Hope it helps! > > Cheers, > > Bruno I did find the newtype solution, and trying to avoid that is what motivated such ugly switch flipping usage of GHC. My intuition was that this example of creating "something like a sub-type-class of Show" which treats String differently ought to be possible. And it is possible, and I would hazard a guess that your solution with "MyShow (String->t)" is safe in spite of the extra switches. The sad thing is that the two -fallow switches infect client code that uses the MyShow module. So allowing those tricks for class MyShow must turn on for classes in code that imports MyShow. If GHC could -fallow those flags only for certain typeclasses then it would be confinable. In principle, could GHC ever be extended to confine -fallow this way? -- Chris _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe