[GHC] #15731: Add sortOn/coerce rule
GHC
ghc-devs at haskell.org
Tue Oct 9 19:17:45 UTC 2018
#15731: Add sortOn/coerce rule
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner: (none)
Type: feature | Status: new
request |
Priority: normal | Milestone: 8.8.1
Component: Core | Version: 8.6.1
Libraries |
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: Runtime
Unknown/Multiple | performance bug
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
When the argument to `sortOn` is very cheap, we're better off ''not''
decorating the list. Detecting this is not easy in general, but it's
trivial for coercions. We should probably offer something like
{{{#!hs
{-# RULES
"sortOn/coerce" forall b xs.
sortOn @_ @b coerce xs = sortWith (coerce @_ @b) xs
#-}
}}}
As far as I can tell, we can't use type application directly like that,
but we can go via `Proxy#`.
`PrelRules` could do better, of course, catching selector functions, but I
don't think we want to go that far.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15731>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list