#5821: SPECIALISE fails with a cryptic warning
---------------------------------+------------------------------------------
    Reporter:  rl                |       Owner:                                 
  
        Type:  bug               |      Status:  new                            
  
    Priority:  normal            |   Milestone:  7.6.1                          
  
   Component:  Compiler          |     Version:  7.5                            
  
    Keywords:                    |          Os:  Unknown/Multiple               
  
Architecture:  Unknown/Multiple  |     Failure:  Incorrect warning at 
compile-time
  Difficulty:  Unknown           |    Testcase:                                 
  
   Blockedby:                    |    Blocking:                                 
  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by illissius):

 Just to amuse matters further, these both work, with both 7.0 and 7.4:
 {{{
 foo :: (Num a, b ~ T a) => a -> b
 {-# SPECIALISE foo :: b ~ Bool => Int -> b #-}
 }}}
 {{{
 foo :: (Num a, b ~ T a) => a -> b
 {-# SPECIALISE foo :: Int -> Bool #-}
 }}}
 that is, completely the opposite of the original example, now it works if
 and only if I *do* expand the type family, and it doesn't matter what I do
 with the equality constraint.

 (FTR I'm testing with 7.0 and 7.4 because I don't have a 7.2 on hand.)

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

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to