
#8423: contraint solver doesn't reduce reducible closed type family expressions (even with undecidable instances!) --------------------------------------------+------------------------------ Reporter: carter | Owner: Type: feature request | Status: new Priority: normal | Milestone: 7.10.1 Component: Compiler (Type checker) | Version: 7.7 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: #4259 --------------------------------------------+------------------------------ Comment (by goldfire): This should work just fine in 7.6. Just change the closed type family `(+)` to be an open one. Everything else should just work. I've update [https://gist.github.com/goldfirere/6902431#file-shape-7-6-hs the gist] with a 7.6-compatible version. (I also had to inline a few definitions that aren't available in the 7.6 libraries.) Examining the core won't work, because even core needs the proofs to type- check! You might be able to examine something after core, but GHC's behavior after it's done with core is black magic to me. You might have to benchmark it. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8423#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler