
#14270: GHC HEAD's ghc-stage1 panics on Data.Typeable.Internal -------------------------------------+------------------------------------- Reporter: hvr | Owner: bgamari Type: bug | Status: new Priority: high | Milestone: 8.4.1 Component: Compiler | Version: 8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #14236 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I have not reproduced this, but the RULE comes from `SpecConstr`. Presumably it sees a call to {{{ mkTrApp @(b_a3RY |> blah) ... (TrTyCon @(b_a3RY |> blah) e1 ...) }}} and creates a specialised copy of `mkTrApp`, something like {{{ $smkTrApp sc1 sc2 sc3 = <body of mkTrApp applied to suitable args> }}} along with a RULE to convert calls to `mkTrApp` into calls to `$smkTrApp`, something like {{{ RULE "SC:mkTrApp0" forall sc1 sc2 sc3. mkTrApp @(b_a3RY |> blah) ... = $smkTrApp sc1 sc2 sc3 }}} So that's how those casts end up on the LHS of a RULE. I have not yet figured out why we put a coercion variable in the template variables. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14270#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler