[GHC] #15629: "No skolem info" panic (GHC 8.6 only)

GHC ghc-devs at haskell.org
Tue Sep 11 18:36:43 UTC 2018


#15629: "No skolem info" panic (GHC 8.6 only)
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler (Type    |              Version:  8.6.1-beta1
  checker)                           |
      Resolution:                    |             Keywords:  TypeInType
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by RyanGlScott):

 Blimey, it looks like this has been fixed on GHC HEAD:

 {{{
 $ /opt/ghc/head/bin/ghci Bug.hs
 GHCi, version 8.7.20180827: http://www.haskell.org/ghc/  :? for help
 Loaded GHCi configuration from /home/rgscott/.ghci
 [1 of 1] Compiling Bug              ( Bug.hs, interpreted )

 Bug.hs:50:39: error:
     • Expected kind ‘m z ~> Rep1 m ab’,
         but ‘(From1Sym0 :: m z ~> Rep1 m z)’ has kind ‘m z ~> Rep1 m z’
     • In the first argument of ‘(.@#@$$$)’, namely
         ‘(From1Sym0 :: m z ~> Rep1 m z)’
       In the first argument of ‘Sing’, namely
         ‘(((From1Sym0 :: m z ~> Rep1 m z) .@#@$$$ To1Sym0) :: Rep1 m ab
                                                               ~> Rep1 m
 ab)’
       In the type signature:
         sFrom1To1Fun :: forall ab.
                         Sing (((From1Sym0 :: m z ~> Rep1 m z) .@#@$$$
 To1Sym0) :: Rep1 m ab
 ~> Rep1 m ab)
    |
 50 |     sFrom1To1Fun :: forall ab. Sing (((From1Sym0 :: m z ~> Rep1 m z)
 .@#@$$$ To1Sym0) :: Rep1 m ab ~> Rep1 m ab)
    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 Bug.hs:51:20: error:
     • Couldn't match type ‘z’ with ‘ab’
       ‘z’ is a rigid type variable bound by
         the type signature for:
           sFrom1To1Fun :: forall z1 ab1. Sing (From1Sym0 .@#@$$$ To1Sym0)
         at Bug.hs:50:5-112
       ‘ab’ is a rigid type variable bound by
         the type signature for:
           sFrom1To1Fun :: forall z1 ab1. Sing (From1Sym0 .@#@$$$ To1Sym0)
         at Bug.hs:50:5-112
       Expected type: Sing (From1Sym0 .@#@$$$ To1Sym0)
         Actual type: Sing (From1Sym0 .@#@$$$ To1Sym0)
     • In the expression: sFrom1Fun %.$$$ sTo1Fun
       In an equation for ‘sFrom1To1Fun’:
           sFrom1To1Fun = sFrom1Fun %.$$$ sTo1Fun
       In an equation for ‘f’:
           f _
             = ()
             where
                 sFrom1Fun :: forall ab. Sing (From1Sym0 :: m ab ~> Rep1 m
 ab)
                 sFrom1Fun = undefined
                 sTo1Fun :: forall ab. Sing (To1Sym0 :: Rep1 m ab ~> m ab)
                 sTo1Fun = undefined
                 ....
     • Relevant bindings include
         sFrom1To1Fun :: Sing (From1Sym0 .@#@$$$ To1Sym0)
           (bound at Bug.hs:51:5)
    |
 51 |     sFrom1To1Fun = sFrom1Fun %.$$$ sTo1Fun
    |                    ^^^^^^^^^^^^^^^^^^^^^^^
 }}}

 I'm dying to know what fixed this...

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


More information about the ghc-tickets mailing list