Core Lint error ([LclId[CoVarId]] is out of scope) on GHC HEAD only
The following commit produces a Core Lint error on GHC HEAD when compiled with optimizations, but not with GHC 8.8 or earlier:
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
module Bug (castWith) where
import Data.Kind (Type)
import Data.Type.Equality ((:~:)(..))
data TyFun :: Type -> Type -> Type
type a ~> b = TyFun a b -> Type
infixr 0 ~>
type family Apply (f :: a ~> b) (x :: a) :: b
data SomeSing :: forall j k. j -> k -> Type where
SomeSing :: Sing (x :: a :~: b) -> SomeSing a b
toSing :: a :~: b -> SomeSing a b
toSing Refl = SomeSing SRefl
withSomeSing :: a :~: b
-> (forall (x :: a :~: b). Sing x -> r)
-> r
withSomeSing x f =
case toSing x of
SomeSing x' -> f x'
data Sing :: forall k (a :: k) (b :: k). a :~: b -> Type where
SRefl :: Sing Refl
(~>:~:) :: forall k (a :: k)
(p :: forall (y :: k). a :~: y ~> Type)
(b :: k) (r :: a :~: b).
Sing r
-> Apply p Refl
-> Apply p r
(~>:~:) SRefl pRefl = pRefl
type WhyCastWith (a :: Type) (e :: a :~: b) = b
data WhyCastWithSym1 (a :: Type) :: forall (b :: Type). a :~: b ~> Type
type instance Apply (WhyCastWithSym1 a) e = WhyCastWith a e
castWith :: forall a b. a :~: b -> a -> b
castWith eq x =
withSomeSing eq $ \(singEq :: Sing e) ->
(~>:~:) @Type @a @(WhyCastWithSym1 a) @b @e singEq x
$ ~/Software/ghc5/inplace/bin/ghc-stage2 -O -dcore-lint Bug.hs
[1 of 1] Compiling Bug ( Bug.hs, Bug.o )
*** Core Lint errors : in result of Simplifier ***
<no location info>: warning:
In the type ‘WhyCastWith
a_a19p ('Refl |> Sym ((:~:) <*>_N <a_a19p>_N co_a18V)_N)’
co_a18V :: b_a19q ~# a_a19p
[LclId[CoVarId]] is out of scope
Click below to see the Core Lint error in its full detail:
$ ~/Software/ghc5/inplace/bin/ghc-stage2 -O -dcore-lint Bug.hs
[1 of 1] Compiling Bug ( Bug.hs, Bug.o )
*** Core Lint errors : in result of Simplifier ***
<no location info>: warning:
In the type ‘WhyCastWith
a_a19p ('Refl |> Sym ((:~:) <*>_N <a_a19p>_N co_a18V)_N)’
co_a18V :: b_a19q ~# a_a19p
[LclId[CoVarId]] is out of scope
*** Offending Program ***
castWith :: forall a b. (a :~: b) -> a -> b
[LclIdX,
Arity=2,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=True)}]
castWith
= \ (@ a_a19p)
(@ b_a19q)
(eq_a13n :: a_a19p :~: b_a19q)
(x_a13o :: a_a19p) ->
case eq_a13n of { Refl co_a18V ->
x_a13o
`cast` (Sub (Sym (D:R:Apply:~:TYPEWhyCastWithSym1e[0]
<a_a19p>_N <a_a19p>_N <'Refl>_N)) ; ((Apply
((:~:)
<*>_N
<a_a19p>_N
(Sym co_a18V))_N
<*>_N
(WhyCastWithSym1
<a_a19p>_N (Sym co_a18V))_N
(Sym (GRefl nominal ('Refl |> Sym ((:~:)
<*>_N
<a_a19p>_N
co_a18V)_N)
((:~:)
<*>_N
<a_a19p>_N
co_a18V)_N)))_R ; Sub (D:R:Apply:~:TYPEWhyCastWithSym1e[0]
<a_a19p>_N
<b_a19q>_N
<('Refl |> Sym ((:~:)
<*>_N
<a_a19p>_N
co_a18V)_N)>_N))
:: WhyCastWith a_a19p 'Refl
~R# WhyCastWith
a_a19p ('Refl |> Sym ((:~:) <*>_N <a_a19p>_N co_a18V)_N))
}
$trModule_s1mN :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
$trModule_s1mN = "main"#
$trModule_s1mO :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$trModule_s1mO = TrNameS $trModule_s1mN
$trModule_s1mP :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
$trModule_s1mP = "Bug"#
$trModule_s1mQ :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$trModule_s1mQ = TrNameS $trModule_s1mP
$trModule :: Module
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$trModule = Module $trModule_s1mO $trModule_s1mQ
$krep_a1lS [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
$krep_a1lS = $WKindRepVar (I# 1#)
$krep_a1lU [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lU = KindRepFun $krep_a1lS krep$*
$krep_a1lR [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
$krep_a1lR = $WKindRepVar (I# 0#)
$krep_a1lT [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lT = KindRepFun $krep_a1lR $krep_a1lU
$krep_s1mR :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mR = : @ KindRep $krep_a1lS ([] @ KindRep)
$krep_s1mS :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mS = : @ KindRep $krep_a1lR $krep_s1mR
$krep_s1mT :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mT = : @ KindRep krep$* $krep_s1mS
$krep_a1lQ [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lQ = KindRepTyConApp $tc:~: $krep_s1mT
$krep_a1lZ [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
$krep_a1lZ = $WKindRepVar (I# 3#)
$krep_a1lY [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
$krep_a1lY = $WKindRepVar (I# 2#)
$krep_a1lX [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
$krep_a1lX = $WKindRepVar (I# 1#)
$krep_s1mU :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mU = : @ KindRep $krep_a1lX ([] @ KindRep)
$krep_s1mV :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mV = : @ KindRep $krep_a1lR $krep_s1mU
$krep_a1m4 [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1m4 = KindRepTyConApp $tc'Refl $krep_s1mV
$krep_s1mW :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mW = : @ KindRep $krep_a1lY ([] @ KindRep)
$krep_s1mX :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mX = : @ KindRep $krep_a1lX $krep_s1mW
$krep_s1mY :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1mY = : @ KindRep $krep_a1lR $krep_s1mX
$krep_a1m2 [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1m2 = KindRepTyConApp $tc:~: $krep_s1mY
$krep_a1m1 [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1m1 = KindRepFun $krep_a1m2 krep$*
$tcTyFun_s1mZ :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
$tcTyFun_s1mZ = "TyFun"#
$tcTyFun_s1n0 :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$tcTyFun_s1n0 = TrNameS $tcTyFun_s1mZ
$tcTyFun :: TyCon
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
$tcTyFun
= TyCon
8840097126617362261##
15320025594455375939##
$trModule
$tcTyFun_s1n0
0#
krep$*->*->*
$krep_s1n1 :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1n1 = : @ KindRep krep$* ([] @ KindRep)
$krep_s1n2 :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1n2 = : @ KindRep $krep_a1lQ $krep_s1n1
$krep_a1lP [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lP = KindRepTyConApp $tcTyFun $krep_s1n2
$krep_a1lO [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lO = KindRepFun $krep_a1lP krep$*
$tcSing_s1n3 :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
$tcSing_s1n3 = "Sing"#
$tcSing_s1n4 :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$tcSing_s1n4 = TrNameS $tcSing_s1n3
$tcSing :: TyCon
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
$tcSing
= TyCon
16316977192587820783##
1420802955261568026##
$trModule
$tcSing_s1n4
3#
$krep_a1m1
$krep_s1n5 :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1n5 = : @ KindRep $krep_a1m4 ([] @ KindRep)
$krep_s1n6 :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1n6 = : @ KindRep $krep_a1lX $krep_s1n5
$krep_s1n7 :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1n7 = : @ KindRep $krep_a1lX $krep_s1n6
$krep_s1n8 :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1n8 = : @ KindRep $krep_a1lR $krep_s1n7
$krep_a1m3 [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1m3 = KindRepTyConApp $tcSing $krep_s1n8
$tc'SRefl_s1n9 :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
$tc'SRefl_s1n9 = "'SRefl"#
$tc'SRefl_s1na :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$tc'SRefl_s1na = TrNameS $tc'SRefl_s1n9
$tc'SRefl :: TyCon
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
$tc'SRefl
= TyCon
1240696921998469508##
15674720560038891521##
$trModule
$tc'SRefl_s1na
2#
$krep_a1m3
$krep_s1nb :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1nb = : @ KindRep $krep_a1lZ ([] @ KindRep)
$krep_s1nc :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1nc = : @ KindRep $krep_a1lY $krep_s1nb
$krep_s1nd :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1nd = : @ KindRep $krep_a1lX $krep_s1nc
$krep_s1ne :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1ne = : @ KindRep $krep_a1lR $krep_s1nd
$krep_a1lW [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lW = KindRepTyConApp $tcSing $krep_s1ne
$tcSomeSing_s1nf :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
$tcSomeSing_s1nf = "SomeSing"#
$tcSomeSing_s1ng :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$tcSomeSing_s1ng = TrNameS $tcSomeSing_s1nf
$tcSomeSing :: TyCon
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
$tcSomeSing
= TyCon
337416658418398976##
7977352689243814254##
$trModule
$tcSomeSing_s1ng
2#
$krep_a1lT
$krep_s1nh :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1nh = : @ KindRep $krep_a1lY ([] @ KindRep)
$krep_s1ni :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1ni = : @ KindRep $krep_a1lX $krep_s1nh
$krep_s1nj :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1nj = : @ KindRep $krep_a1lR $krep_s1ni
$krep_s1nk :: [KindRep]
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_s1nk = : @ KindRep $krep_a1lR $krep_s1nj
$krep_a1m0 [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1m0 = KindRepTyConApp $tcSomeSing $krep_s1nk
$krep_a1lV [InlPrag=NOUSERINLINE[~]] :: KindRep
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
$krep_a1lV = KindRepFun $krep_a1lW $krep_a1m0
$tc'SomeSing_s1nl :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 0}]
$tc'SomeSing_s1nl = "'SomeSing"#
$tc'SomeSing_s1nm :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$tc'SomeSing_s1nm = TrNameS $tc'SomeSing_s1nl
$tc'SomeSing :: TyCon
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
$tc'SomeSing
= TyCon
5159083836374534454##
15158217318919393900##
$trModule
$tc'SomeSing_s1nm
4#
$krep_a1lV
$tcWhyCastWithSym1_s1nn :: Addr#
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 50 0}]
$tcWhyCastWithSym1_s1nn = "WhyCastWithSym1"#
$tcWhyCastWithSym1_s1no :: TrName
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
$tcWhyCastWithSym1_s1no = TrNameS $tcWhyCastWithSym1_s1nn
$tcWhyCastWithSym1 :: TyCon
[LclIdX,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
$tcWhyCastWithSym1
= TyCon
3738739332414206721##
11953989627323266458##
$trModule
$tcWhyCastWithSym1_s1no
2#
$krep_a1lO
*** End of Offense ***
<no location info>: error:
Compilation had errors
This regression was introduced in commit b78cc64e (Make constructor wrappers inline only during the final phase
).