Created
November 30, 2018 08:39
-
-
Save mpickering/d72def64a6fd9df8c99e2ffe6d232dac to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1 of 1] Compiling Repro ( ScopedEffectsRepro.hs, ScopedEffectsRepro.o ) | |
*** Core Lint errors : in result of Desugar (before optimization) *** | |
<no location info>: warning: | |
In the expression: return | |
@ E $dIMonad_a1lH @ (Const Int) @ n_a1lu (one @ n_a1lu) | |
$dIMonad_a1lH :: IMonad E | |
[LclId] is out of scope | |
*** Offending Program *** | |
Rec { | |
$tcIMonad :: TyCon | |
[LclIdX] | |
$tcIMonad | |
= TyCon | |
16015536477952851925## | |
18102663607181221615## | |
$trModule | |
(TrNameS "IMonad"#) | |
0# | |
$krep_a1ou | |
$tcE :: TyCon | |
[LclIdX] | |
$tcE | |
= TyCon | |
6022797558184183253## | |
5968878448011824304## | |
$trModule | |
(TrNameS "E"#) | |
0# | |
$krep_a1ov | |
$tc'VarE :: TyCon | |
[LclIdX] | |
$tc'VarE | |
= TyCon | |
12193338505439638513## | |
2546000595031928785## | |
$trModule | |
(TrNameS "'VarE"#) | |
2# | |
$krep_a1ox | |
$krep_a1oz [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1oz = $WKindRepVar (I# 0#) | |
$krep_a1oA [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1oA = $WKindRepVar (I# 1#) | |
$krep_a1oy [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1oy = KindRepApp $krep_a1oz $krep_a1oA | |
$krep_a1ox [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1ox = KindRepFun $krep_a1oy $krep_a1oB | |
$krep_a1ou [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1ou = KindRepFun $krep_a1ov $krep_a1ow | |
$krep_a1ov [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1ov = KindRepFun krep$*Arr* krep$*Arr* | |
$krep_a1oB [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1oB | |
= KindRepTyConApp | |
$tcE | |
(: @ KindRep $krep_a1oz (: @ KindRep $krep_a1oA ([] @ KindRep))) | |
$krep_a1ow [InlPrag=NOUSERINLINE[~]] :: KindRep | |
[LclId] | |
$krep_a1ow = KindRepTyConApp $tcConstraint ([] @ KindRep) | |
$trModule :: Module | |
[LclIdX] | |
$trModule = Module (TrNameS "main"#) (TrNameS "Repro"#) | |
one :: forall n. Const Int n | |
[LclId] | |
one | |
= \ (@ n_a1lb) -> | |
let { | |
$dNum_a1ls :: Num Int | |
[LclId] | |
$dNum_a1ls = $fNumInt } in | |
Const @ * @ Int @ n_a1lb (I# 1#) | |
example_4 :: forall n. E (Const Int) n | |
[LclId] | |
example_4 | |
= \ (@ n_a1lu) -> | |
let { | |
$dIMonad_a1lx :: IMonad E | |
[LclId] | |
$dIMonad_a1lx = $fIMonadE } in | |
>>= | |
@ E | |
$dIMonad_a1lx | |
@ (Const Int) | |
@ n_a1lu | |
@ (Const Int) | |
(return @ E $dIMonad_a1lH @ (Const Int) @ n_a1lu (one @ n_a1lu)) | |
(\ (@ n_a1lC) -> | |
let { | |
$dIMonad_a1lH :: IMonad E | |
[LclId] | |
$dIMonad_a1lH = $dIMonad_a1lx } in | |
let { | |
$dIMonad_a1lN :: IMonad E | |
[LclId] | |
$dIMonad_a1lN = $dIMonad_a1lH } in | |
\ (x_a18v :: Const Int n_a1lC) -> | |
return @ E $dIMonad_a1lN @ (Const Int) @ n_a1lC x_a18v) | |
main :: () | |
[LclIdX] | |
main | |
= letrec { | |
main_a1lZ :: () | |
[LclId] | |
main_a1lZ | |
= case example_4 @ Any of wild_00 { __DEFAULT -> () }; } in | |
main_a1lZ | |
$fIMonadE [InlPrag=NOUSERINLINE CONLIKE] :: IMonad E | |
[LclIdX[DFunId], | |
Unf=DFun: \ -> C:IMonad TYPE: E $creturn_a1m4 $c>>=_a1mC] | |
$fIMonadE = C:IMonad @ E $creturn_a1m4 $c>>=_a1mC | |
$creturn_a1m4 :: forall (a :: * -> *) n. a n -> E a n | |
[LclId] | |
$creturn_a1m4 | |
= \ (@ (a_a1mr :: * -> *)) (@ n_a1ms) -> | |
(\ (@ (a_a1mw :: * -> *)) (@ n_a1mx) -> VarE @ a_a1mw @ n_a1mx) | |
@ a_a1mr @ n_a1ms | |
$c>>=_a1mC | |
:: forall (a :: * -> *) n (b :: * -> *). | |
E a n -> (forall n. a n -> E b n) -> E b n | |
[LclId] | |
$c>>=_a1mC | |
= \ (@ (a_a1nf :: * -> *)) | |
(@ n_a1ng) | |
(@ (b_a1nh :: * -> *)) | |
(ds_d1oP :: E a_a1nf n_a1ng) | |
(ds_d1oQ :: forall n. a_a1nf n -> E b_a1nh n) -> | |
(\ (@ (a_a1ns :: * -> *)) | |
(@ n_a1nt) | |
(@ (b_a1nu :: * -> *)) | |
(ds_d1oL :: E a_a1ns n_a1nt) | |
(f_ayp :: forall n. a_a1ns n -> E b_a1nu n) -> | |
case ds_d1oL of wild_00 { VarE x_ayo -> f_ayp @ n_a1nt x_ayo }) | |
@ a_a1nf | |
@ n_a1ng | |
@ b_a1nh | |
ds_d1oP | |
(\ (@ n_a1nm) -> ds_d1oQ @ n_a1nm) | |
end Rec } | |
*** End of Offense *** | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment