
#13044: make it possible to apply GHC rewrite rules to class methods -------------------------------------+------------------------------------- Reporter: George | Owner: Type: task | 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 simonpj): I don't think there is anything fundamentally difficult here. Class methods have a special rewriting rule (see `MkId.dictSelRule`, which is not as well documented as it should be). It rewrites `op dict`, where `op` is a class method and `dict` is a dictionary, when possible to the type-specialised function. All we need to do is to stop that rule firing immediately. Perhaps it can fire in phase 2 (and hence 1 and 0) instead of always. That would give other rules a chance to match on it. I can't forsee all the consequences, but they should not be too drastic. But it would need careful perf testing; failure to optimise overloading can kill performance. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13044#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler