
#12791: Superclass methods could be more aggressively specialised. -------------------------------------+------------------------------------- Reporter: mpickering | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:5 simonpj]:
GHC's constraint solver uses the "given" constraint (here `Num Int` via a superclass of `C Int b`) where possible. You may say "If there is an instance declaration, use that instead of the given constraint. But no {{{ f :: Ord [a] => ... f x = ..Need Eq [a]... }}}
If we didn't have overlapping instances, could we reduce the `Ord [a]` constraint to `Ord a` when checking the signature (changing the semantics of `FlexibleContexts` a bit)? That would open up a different path to `Eq [a]`. Or do these constraints sometimes arise in situations where they can't be (or shouldn't be) reduced? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12791#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler