[GHC] #14323: Occurs check regressions in GHC 8.2.1 (and HEAD)

GHC ghc-devs at haskell.org
Thu Oct 5 10:52:27 UTC 2017


#14323: Occurs check regressions in GHC 8.2.1 (and HEAD)
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler (Type    |              Version:  8.2.1
  checker)                           |
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 > Thus, I'd argue that hm2 and hm3 are not wrong programs.

 Hmm.  That's a good point.  But we solve constraints, both `~#` and `~R#`
 by normalising and then rewriteing.  So if we have
 {{{
 [G] b ~R# f b
 [W] b ~R# blah
 }}}
 then we can use the given to rewrite the wanted to
 {{{
 [W] b ~R# blah
 ==> [W] f b ~R# blah
 ==> [W] f (f b) ~R# blah
 ..etc...
 }}}
 We don't want to do that.  So we park the given and don't use it for
 rewriting.

 So maybe the point is not that the code is inaccessible, but rather that
 we don't have a complete solver.  Hmm.

 I wonder what Richard and Stephanie think?

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


More information about the ghc-tickets mailing list