[GHC] #15648: Core Lint error with source-level unboxed equality

GHC ghc-devs at haskell.org
Sat Sep 15 15:00:56 UTC 2018


#15648: Core Lint error with source-level unboxed equality
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.8.1
       Component:  Compiler          |              Version:  8.4.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #15209            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by goldfire):

 Sigh.

 I see two problems here:

 1. Why does GHC type check `Jank` at type `JankyEquality a b`? There must
 be something in the type checker which treats arguments of type `a ~# b`
 as invisible. But these shouldn't be -- they are not `Constraint`s. To
 fix: find this code and kill it.

 2. What on earth was the simplifier thinking?!? To fix: find this code and
 encourage it to get an education.

 I'd be less alarmed if the core lint error were right in the desugarer.
 Then, we could plausibly argue that forbidding `~#` from source would fix
 the problem. But if the simplifier is doing it, there's got to be a
 legitimate bug (or, at least, a delicate invariant) somewhere.

 I don't think we should be able to get a lint error just by writing `~#`
 in the source.

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


More information about the ghc-tickets mailing list