[GHC] #15725: Core Lint error: Trans coercion mis-match

GHC ghc-devs at haskell.org
Wed Oct 10 14:49:37 UTC 2018


#15725: Core Lint error: Trans coercion mis-match
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:  8.8.1
       Component:  Compiler          |              Version:  8.6.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #15703            |  Differential Rev(s):  Phab:D5217
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by RyanGlScott):

 Thanks for your tireless efforts to minimize these bugs, monoidal. They're
 very much appreciated.

 In this particular example, I think you might have minimized it too well!
 That's because that program trips up Core Lint even with the patch in
 Phab:D5217. In fact, I think this program has an entirely different bug
 from the one described in this ticket.

 Here is the Core Lint error for your program:

 {{{
 *** Core Lint errors : in result of Simplifier ***
 Bug.hs:25:1: warning:
     [in body of lambda with binder x_a19R :: Identity a_a19Q]
     Kind application error in
       coercion ‘(Sing
                    (D:R:Rep1Identity[0] <a_a19Q>_N) <From1 x_a19R>_N)_R’
       Function kind = forall k. k -> *
       Arg kinds = [(Par1 a_a19Q, *),
                    (From1 x_a19R, Rep1 Identity a_a19Q)]
     Fun: Par1 a_a19Q
          (From1 x_a19R, Rep1 Identity a_a19Q)
 Bug.hs:25:1: warning:
     [in body of lambda with binder x_a19R :: Identity a_a19Q]
     Kind application error in
       coercion ‘D:R:Singk0[0] <Par1 a_a19Q>_N <From1 x_a19R>_N’
       Function kind = Par1 a_a19Q -> *
       Arg kinds = [(From1 x_a19R, Rep1 Identity a_a19Q)]
     Fun: Par1 a_a19Q
          (From1 x_a19R, Rep1 Identity a_a19Q)
 Bug.hs:25:1: warning:
     [in body of lambda with binder x_a19R :: Identity a_a19Q]
     Kind application error in
       coercion ‘D:R:Singk0[0] <Par1 a_a19Q>_N <From1 x_a19R>_N’
       Function kind = Par1 a_a19Q -> *
       Arg kinds = [(From1 x_a19R, Rep1 Identity a_a19Q)]
     Fun: Par1 a_a19Q
          (From1 x_a19R, Rep1 Identity a_a19Q)
 <no location info>: warning:
     In the type ‘R:Singk (Par1 a_a19Q) (From1 x_a19R)’
     Kind application error in
       type ‘R:Singk (Par1 a_a19Q) (From1 x_a19R)’
       Function kind = forall k -> k -> *
       Arg kinds = [(Par1 a_a19Q, *),
                    (From1 x_a19R, Rep1 Identity a_a19Q)]
     Fun: Par1 a_a19Q
          (From1 x_a19R, Rep1 Identity a_a19Q)
 <no location info>: warning:
     In the type ‘R:Singk (Par1 a_a19Q) (From1 x_a19R)’
     Kind application error in
       type ‘R:Singk (Par1 a_a19Q) (From1 x_a19R)’
       Function kind = forall k -> k -> *
       Arg kinds = [(Par1 a_a19Q, *),
                    (From1 x_a19R, Rep1 Identity a_a19Q)]
     Fun: Par1 a_a19Q
          (From1 x_a19R, Rep1 Identity a_a19Q)
 }}}

 My suspicion is that this program suffers from the same problems that
 afflict the program in #15549, since (1) the errors look very similar, and
 (2) `seq` is being used here, and I identified the `improveSeq` function
 as being responsible for an incorrect optimization in #15549. I'll put
 this program over in that ticket as another test case.

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


More information about the ghc-tickets mailing list