Another runtime-rep crash
This program gets a Lint error:
```
{-# LANGUAGE GHC2024, TypeFamilies #-}
module Foo where
import Data.Kind
import GHC.Exts
type family F a :: RuntimeRep
type instance F Int = LiftedRep
g :: forall (r::RuntimeRep).
(forall (a :: TYPE r). a -> forall b. b -> b) -> Int
g = g
foo = g @(F Int) (\x y -> y)
```
Here's the error:
```
*** Core Lint errors : in result of Desugar (before optimization) ***
Foo.hs:15:19: warning:
From-type of Cast differs from type of enclosed expression
From-type: a_aBO
Type of enclosed expression: (a_aBO |> (TYPE D:R:FInt)_N)
Actual enclosed expression: ds_DCE
Coercion used in cast: GRefl representational a_aBO
(TYPE D:R:FInt)_N
In the RHS of foo :: Int
In the RHS of foo_aBW :: Int
In the body of lambda with binder a_aBO :: TYPE (F Int)
In the body of lambda with binder ds_DCE :: (a_aBO |> (TYPE
D:R:FInt)_N)
In the body of lambda with binder b_aBS :: *
Substitution: <InScope = {a_aBO b_aBS}
IdSubst = []
TvSubst = []
CvSubst = []>
*** Offending Program ***
Rec {
g :: forall (r :: RuntimeRep).
(forall (a :: TYPE r). a -> forall b. b -> b) -> Int
[LclIdX]
g = \ (@(r_aBE :: RuntimeRep)) ->
(g @r_aBE)
`cast` (Sub (forall (a ::~ <TYPE r_aBE>_N).
<a -> forall b. b -> b>_N)
->_R <Int>_R
:: ((forall (a :: TYPE r_aBE). a -> forall b. b -> b) -> Int)
~R# ((forall (a :: TYPE r_aBE). a -> forall b. b -> b) -> Int))
foo :: Int
[LclIdX]
foo
= letrec {
foo_aBW :: Int
[LclId]
foo_aBW
= g @(F Int)
(\ (@(a_aBO :: TYPE (F Int)))
(ds_DCE :: (a_aBO |> (TYPE D:R:FInt)_N))
(@b_aBS) ->
(\ (x_axq :: (a_aBO |> (TYPE D:R:FInt)_N)) (y_axr :: b_aBS) ->
y_axr)
(ds_DCE
`cast` (GRefl representational a_aBO (TYPE D:R:FInt)_N
:: a_aBO ~R# (a_aBO |> (TYPE D:R:FInt)_N)))); } in
foo_aBW
end Rec }
```
issue