[GHC] #7372: Lint failure in GHC 7.6.1

GHC cvs-ghc at haskell.org
Sun Jan 13 11:10:32 CET 2013


#7372: Lint failure in GHC 7.6.1
-------------------------------+--------------------------------------------
  Reporter:  simonpj           |          Owner:                  
      Type:  bug               |         Status:  closed          
  Priority:  normal            |      Milestone:  7.8.1           
 Component:  Compiler          |        Version:  7.6.1           
Resolution:  fixed             |       Keywords:                  
        Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown      |     Difficulty:  Unknown         
  Testcase:                    |      Blockedby:                  
  Blocking:                    |        Related:                  
-------------------------------+--------------------------------------------
Changes (by monoidal):

  * status:  new => closed
  * resolution:  => fixed


Comment:

 I checked it. TL;DR: the same cause as in #7312, fixed in HEAD and STABLE.

 Here's a small version:

 {{{
 module Main where

 data Exp = Cte Integer
          | Let Exp

 eval :: Exp -> (->) a Integer
 eval (Cte i) = return i                -- (1)
 eval (Let b) = \m -> eval b m          -- (2)

 main = undefined
 }}}

 Under GHC 7.6.1, there are two problems. Both are fixed by changing (->) a
 Integer to a -> Integer. Line (1) compiles but fails dcore-lint. In fact

 {{{
 c :: (->) a a
 c = id
 }}}

 already fails dcore-lint, saying that the types {{{(->) a a}}} and {{{a ->
 a}}} do not match. Line (2) gives panic identical to #7312. The code works
 fine after the fix in #7312.

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



More information about the ghc-tickets mailing list