On Mon, Sep 04, 2006 at 03:39:06PM +0100, Simon Peyton-Jones wrote: > | ------------------------------------------------ > | data Equation = ... > | instance Show Equation where ... > | > | instance Show [Equation] > | where > | showsPrec _ eqs = <certain program which prints a list of equation > | in a `nicer' way than by the default list > printing > | > > | ------------------------------------------------ > | > | This gives the user possibility to redefine a certain part of the > | library instance. > | Is not ghc-6.4.1 better at this point? >
> Perhaps. That's what I'd like feedback about. Let me exlain a bit more the reason. show [1, 2, 3] = "[1,2,3]" -- all right, let it be. Now, for the list eqs :: [Equation], the GHC instance prints it, for example, as ------------------- [[21] n+0 = 0 (Parents [[1],[2]]),[22] n+(s n) = s (n+m) (Parents [[33], [44]]),[23] n*0 = 0 (Parents [[],[]])] ------------------- And I would like it to be at least -------------------- [[21] n+0 = 0 (Parents [[1],[2]]), [22] n+(s n) = s (n+m) (Parents [[33],[44]]), [23] n*0 = 0 (Parents [[],[]]) ], -------------------- which is easier to read. I decided that to overlap with the ghc instance is the simplest and best solution. I thank Ian Lynagh <[EMAIL PROTECTED]> who suggests L> instance Show Equation where L> showsPrec _ eq = ... L> showList eqs = <certain program which ...> Indeed. I even wrote a showsList function, without knowing of the showsList class method! But as Ian writes, L> This doesn't address the general issue So far, I tried this overlap only for Show List and Show Pair, but probably, users and myself would like to partially redefine some other library instances. Simon Peyton-Jones writes > (Incidentally, 6.5 has been like this for about a year without > complaints. I am sorry for this, I am slower than GHC. I have been with 6.4.1 last 1-2 years, and ignored the further version matters. Finally, a week ago decided to look into what is coming with 6.6. > Also I made the change because people wanted to be able to > *use* overlapping instances (defined in a library) without having to > give the -fallow-overlapping-instances flag.) The difference for me is to have a little bit less-or-more comfort. DoCon-2.09 has ported from 6.4.1 to 6.6-candidate only by removing the `data' name from `dependencies', and it looks like working all right. In Dumatel-1.06, it reports the error of this library overlap for `Show'. For exampl, I can define the showsList method, as Ian suggests. Generally, I suspect that ghc-6.4.1 is better at this point of library overlaps, but I am not sure. Anyway, the GHC developers have now more of feedback, they know better and can decide. Thanks, ----------------- Serge Mechveliani [EMAIL PROTECTED] _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users