[GHC] #8044: "Inaccessible code" error reported in wrong place

GHC ghc-devs at haskell.org
Wed Jul 10 00:50:17 CEST 2013


#8044: "Inaccessible code" error reported in wrong place
--------------------------------------------+------------------------------
        Reporter:  goldfire                 |            Owner:
            Type:  bug                      |           Status:  new
        Priority:  normal                   |        Milestone:
       Component:  Compiler (Type checker)  |          Version:  7.7
      Resolution:                           |         Keywords:  GADTs
Operating System:  Unknown/Multiple         |     Architecture:
 Type of failure:  None/Unknown             |  Unknown/Multiple
       Test Case:                           |       Difficulty:  Unknown
        Blocking:                           |       Blocked By:
                                            |  Related Tickets:
--------------------------------------------+------------------------------

Comment (by goldfire):

 Ah, but {{{Frob}}} is a hot-off-the-presses ''closed type family'', which
 allows such things. The idea is that the equations match top-to-bottom,
 much like term-level functions. Because the reasoning is static (at
 compile-time), we have to be more careful about this top-to-bottom
 matching, refusing to let `Frob q` reduce to `Char` before we know that
 `q` cannot possibly become `Int`. This is why the code in the example
 above is erroneous. Despite the previous case checking for `XInt`, GHC
 does not know when type-checking the second equation for `frob` that the
 type variable `a` cannot be `Int`. Thus, it cannot simplify `Frob a` and
 it cannot accept `XChar` as well-typed.

 So, the bug I'm reporting is not that GHC rejects my program. It should
 indeed reject that program. The problem is that the error message points
 out the wrong (as in, non-existent) error.

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



More information about the ghc-tickets mailing list