Skip to content

Instantly share code, notes, and snippets.

@mpickering
Created November 30, 2018 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mpickering/d72def64a6fd9df8c99e2ffe6d232dac to your computer and use it in GitHub Desktop.
Save mpickering/d72def64a6fd9df8c99e2ffe6d232dac to your computer and use it in GitHub Desktop.
[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