[GHC] #14040: Typed holes regression in GHC 8.0.2: No skolem info: z_a1sY[sk:2]

GHC ghc-devs at haskell.org
Mon Feb 18 11:16:08 UTC 2019


#14040: Typed holes regression in GHC 8.0.2: No skolem info: z_a1sY[sk:2]
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.10.1
       Component:  Compiler (Type    |              Version:  8.0.2
  checker)                           |             Keywords:  TypeInType,
      Resolution:                    |  TypeFamilies,
                                     |  PartialTypeSignatures, TypedHoles
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  Compile-time      |            Test Case:  partial-
  crash or panic                     |  sigs/should_fail/T14040a
      Blocked By:                    |             Blocking:
 Related Tickets:  #13877, #15076    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 The original program now reports just one error
 {{{
 T14040.hs:41:8: error:
     • Cannot apply expression of type ‘Sing wl0
                                        -> (forall y. p0 _0 'WeirdNil)
                                        -> (forall z1 (x :: z1) (xs ::
 WeirdList (WeirdList z1)).
                                            Sing x -> Sing xs -> p0 _1 xs
 -> p0 _2 ('WeirdCons x xs))
                                        -> p0 _3 wl0’
       to a visible type argument ‘(WeirdList z)’
 }}}
 And that's right: the signature for `elimWierdList` is a partial
 signature, so we do ''inference'' on the definition.  So at the recursive
 call to `elimWierdList`, the function is a monotype, and can't be applied
 to type arguments.

 However, for the `elimWierdList x = error "urk"` version I get
 {{{
 WARNING: file compiler/types/TyCoRep.hs, line 3033
   in_scope InScope {a_a10j wl_a10k p_a10l}
   tenv [aX1 :-> a_a10j[tyv:1], aX2 :-> wl_a10k[tyv:1],
         aX4 :-> p_a10l[tyv:1]]
   cenv []
   tys [Sing wl_aX2[tyv:1]
        -> (forall y. p_aX4[tyv:1] __aZo[tau:2] 'WeirdNil)
        -> (forall z (x :: z) (xs :: WeirdList (WeirdList z)).
            Sing x
            -> Sing xs
            -> p_aX4[tyv:1] __aZL[tau:2] xs
            -> p_aX4[tyv:1] __aZP[tau:2] ('WeirdCons x xs))
        -> p_aX4[tyv:1] __aZW[tau:1] wl_aX2[tyv:1]]
   cos []
   needInScope {z_aX6[sk:2], x_aZm[tau:2], __aZo[tau:2], __aZL[tau:2],
                __aZP[tau:2], __aZW[tau:1]}
   Call stack:
       CallStack (from HasCallStack):
         callStackDoc, called at compiler/utils/Outputable.hs:1211:29 in
 ghc:Outputable
         warnPprTrace, called at compiler/types/TyCoRep.hs:3027:6 in
 ghc:TyCoRep
         checkValidSubst, called at compiler/types/TyCoRep.hs:3050:29 in
 ghc:TyCoRep
         substTy, called at compiler/typecheck/TcSigs.hs:507:49 in
 ghc:TcSigs
 ghc-stage1: panic! (the 'impossible' happened)
   (GHC version 8.7.20190215 for x86_64-unknown-linux):
         ASSERT failed!
   2
   0
   __a23h[tau:0]
   Any
   Call stack:
       CallStack (from HasCallStack):
         callStackDoc, called at compiler/utils/Outputable.hs:1159:37 in
 ghc:Outputable
         pprPanic, called at compiler/utils/Outputable.hs:1220:5 in
 ghc:Outputable
         assertPprPanic, called at compiler/typecheck/TcMType.hs:805:54 in
 ghc:TcMType

 Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug
 }}}
 So there is still stuff wrong here.

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


More information about the ghc-tickets mailing list