
#12212: GHC 8.0.1 crash -------------------------------------+------------------------------------- Reporter: dibblego | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Linux | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: 9160, 10602 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): Indeed something smells a bit fishy here. Looking at rule in question, we see that the coercion variable which is supposed unbound (`cobox_s1TP`) is trivially provided by `Refl`. {{{ [LclId, Arity=10, Str=DmdType, RULES: "SPEC t @ a @ 'DQuantity @ 'DQuantity @ d @ d' @ 'DQuantity @ 'DQuantity @ d @ d'" [ALWAYS] forall (cobox_s1TP :: ((d_a1Fl * d'_a1Fm) :: Dimension) GHC.Prim.~# ((d_a1Fl * d'_a1Fm) :: Dimension)) ... }}} It looks like `specialise/Rules.hs:matchN` has some logic for handling unbound type variables which will fill in with `Any`; however this is a coercion variable, so we instead fail. I wonder if coercion variables also need some special treatment. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12212#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler