
#9117: Coercible constraint solver misses one -------------------------------------+------------------------------------ Reporter: goldfire | Owner: nomeata Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by nomeata): I implemented the changed order (code is running a validate right now). There are still weird corner-cases. Consider: {{{ newtype Foo a = Foo (Foo a) newtype Age = MkAge Int ex1 :: (Foo Age) -> (Foo Int) ex1 = coerce }}} Previously, this would be solvable; now it starts unrolling the infinite newtype. (But we don’t have a good story for newtypes anyways). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9117#comment:19 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler