Skip to content

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).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information