ANNOUNCE: GHC 6.8.3 Release Candidate

Serge D. Mechveliani mechvel at botik.ru
Sun Jun 1 09:39:49 EDT 2008


On Sun, Jun 01, 2008 at 01:13:06AM +0100, Ian Lynagh wrote:
> 
> Hi Serge,
> 
> On Sat, May 31, 2008 at 12:54:50PM +0400, Serge D. Mechveliani wrote:
> > This is a bug report for the  ghc candidate of May 27, 2008 
> > for ghc-6.8.3.
> > A short program example for this bug candidate is on
> > 
> >   http://botik.ru/pub/local/Mechveliani/ghcBugs/candidateMay27-08-bug.zip
> 
> Thanks, I've finally tracked this down. The problem is that when you
> evaluate something like
>     f ^ 10
> in 6.8.2 the result was
>     res
> while in 6.8.3 it is
>     1 * res
> 
> I think this is actually a bug in your class instances, but I will try
> to look at http://hackage.haskell.org/trac/ghc/ticket/2306 before 6.8.3
> which should, as a side-effect, make it work again.

??
Probably, 6.8.3 is wrong.
Because when  res ::  Num a => a,  1*res  means  
                                          ((fromInteger 1) :: a) * res  
in Haskell-98. Right?
And  (fromInteger n) :: a   can be defined arbitrarily by the programmer.
For example, DoCon has the instance
  instance CommutativeRing a => Num (Pol a) 
    where
    ...
    fromInteger _ = error "No  (fromInteger n) :: Pol _ !\
                          \Apply instead  fromi <samplePolynomial> n."   
-- something of this kind.
This is why  res  and  1*res  are not equivalent in Haskell-98 for  
res :: Num a => a.

Am I missing something?

-----------------
Serge Mechveliani
mechvel at botik.ru


More information about the Glasgow-haskell-users mailing list