
#14934: Repeated "impossible" go_axiom_rule error. -------------------------------------+------------------------------------- Reporter: galen | Owner: (none) Type: bug | Status: infoneeded Priority: normal | Milestone: Component: Compiler | Version: 8.4.1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 Type of failure: Compile-time | (amd64) crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): That being said, I have a wild hunch what could be causing this. [http://git.haskell.org/ghc.git/blob/0693b0b0500236a3dec933350a13f1b0e8c1cb54... Here] is where `go_axiom_co` is defined: {{{#!hs tcIfaceCo :: IfaceCoercion -> IfL Coercion tcIfaceCo = go where -- ... go (IfaceAxiomRuleCo ax cos) = AxiomRuleCo <$> go_axiom_rule ax <*> mapM go cos -- ... go_axiom_rule :: FastString -> IfL CoAxiomRule go_axiom_rule n = case Map.lookup n typeNatCoAxiomRules of Just ax -> return ax _ -> pprPanic "go_axiom_rule" (ppr n) }}} It seems that the `Sub0R` axiom isn't in [http://git.haskell.org/ghc.git/blob/0693b0b0500236a3dec933350a13f1b0e8c1cb54... typeNatCoAxiomRules]: {{{#!hs typeNatCoAxiomRules :: Map.Map FastString CoAxiomRule typeNatCoAxiomRules = Map.fromList $ map (\x -> (coaxrName x, x)) [ axAddDef , axMulDef , axExpDef , axLeqDef , axCmpNatDef , axCmpSymbolDef , axAppendSymbolDef , axAdd0L , axAdd0R , axMul0L , axMul0R , axMul1L , axMul1R , axExp1L , axExp0R , axExp1R , axLeqRefl , axCmpNatRefl , axCmpSymbolRefl , axLeq0L , axSubDef -- axSub0R isn't here!!! , axAppendSymbol0R , axAppendSymbol0L , axDivDef , axDiv1 , axModDef , axMod1 , axLogDef ] }}} So perhaps we should just add it. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14934#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler