
#15598: RebindableSyntax with RankNTypes and type class method call yields panic. -------------------------------------+------------------------------------- Reporter: romanb | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.4.3 Resolution: | Keywords: | RebindableSyntax, RankNTypes Operating System: Linux | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: 14963 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I think you are right in connecting it with #14963. But your example here is nothing to do with GHCi, nor with `-fdefer-type-errors`, so it's helpful. Lint complains immediately {{{ *** Core Lint errors : in result of Desugar (before optimization) *** <no location info>: warning: In the expression: show @ Int $dShow_a1rx (I# 42#) $dShow_a1rx :: Show Int [LclId] is out of scope *** Offending Program *** Rec { $dMonad_a1rX :: Monad IO [LclId] $dMonad_a1rX = $fMonadIO $tcInfDo :: TyCon [LclIdX] $tcInfDo = TyCon 14827517540190131426## 17869035366104385648## $trModule (TrNameS "InfDo"#) 0# krep$* $trModule :: Module [LclIdX] $trModule = Module (TrNameS "main"#) (TrNameS "T15598"#) prog :: InfDo [LclIdX] prog = letrec { >>=_aW0 :: String -> (forall a. a -> InfDo) -> InfDo [LclId] >>=_aW0 = letrec { >>=_a1ri :: String -> (forall a. a -> InfDo) -> InfDo [LclId] >>=_a1ri = InfDo; } in >>=_a1ri; } in >>=_aW0 (show @ Int $dShow_a1rx (I# 42#)) (\ (@ a_a1rp) -> let { $dShow_a1rx :: Show Int [LclId] $dShow_a1rx = $fShowInt } in \ (ds_d1De :: a_a1rp) -> prog) main :: IO () [LclIdX] main = letrec { x_a1ca :: InfDo [LclId] x_a1ca = letrec { x_a1rI :: InfDo [LclId] x_a1rI = prog; } in x_a1rI; } in case x_a1ca of x_a1ca { __DEFAULT -> return @ IO $dMonad_a1rX @ () () } end Rec } *** End of Offense *** }}} This is pretty bad. It's all in `tcSyntaxOp`, I believe. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15598#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler