[GHC] #2275: Poor indication of type error location

GHC trac at galois.com
Fri May 9 04:41:41 EDT 2008


#2275: Poor indication of type error location
------------------------+---------------------------------------------------
    Reporter:  guest    |       Owner:                         
        Type:  bug      |      Status:  new                    
    Priority:  normal   |   Component:  Compiler (Type checker)
     Version:  6.8.2    |    Severity:  normal                 
    Keywords:           |    Testcase:                         
Architecture:  Unknown  |          Os:  Unknown                
------------------------+---------------------------------------------------
 Using {-# OPTIONS_GHC -XArrows -fno-monomorphism-restriction #-}, and
 Yampa
 Starting from line 32, my program contains:

 fireworkSF :: Point2 GL.GLdouble -> Point2 GL.GLdouble -> Object
 fireworkSF p0 pFinal = proc _ -> do
   rec
     position <- (p0 .+^) ^<< integral -< v0
     let shouldExplode = position == pFinal
     let killReq = if shouldExplode then Event () else noEvent
     let spawnReq = if shouldExplode
                      then Event (Explode pFinal)
                      else noEvent
   returnA -< ObjectOutput {oState = FireworkState position
                           ,oKillReq = killReq
                           ,oSpawnReq = spawnReq}
   where
     v0 = (pFinal ^-^ p0) ^/ 2

 The type error reports:
 Firework.hs:32:0:
     Couldn't match expected type `Point2 GL.GLdouble'
            against inferred type `Vector2 GL.GLdouble'
     When using functional dependencies to combine
       AffineSpace (Point2 a) (Vector2 a) a,
         arising from the instance declaration at <no location info>
       AffineSpace (Point2 GL.GLdouble) (Point2 GL.GLdouble) a,
         arising from a use of `.+^' at Firework.hs:34:16-23
     When generalising the type(s) for `fireworkSF'

 Indicating that the bug is something to do with line 34.  The actual bug
 is that the last line of the paste should read:
     v0 = (pFinal .-. p0) ^/ 2

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2275>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list