
#9781: Make list monad operations fuse -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: dfeuer Type: task | Status: new Priority: normal | Milestone: 7.10.1 Component: Core | Version: 7.9 Libraries | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: Runtime | Related Tickets: performance bug | Test Case: | Blocking: | Differential Revisions: Phab:D455 | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:1 ekmett]:
I have no issues with improving fusion for do sugared lists, the question is if it is possible to achieve this change with just a libraries fix or if you need to go into the compiler.
There is a lot of crazy code down in the list comprehension module that gets used to make lists fast there. It isn't clear to me how we'd lean on it.
The easy way is to ''use'' the list comprehension desugaring, as in the linked code review. The hard way (because it makes us hide it in some imports) is to move `concatMap` from `GHC.List` into `GHC.Base` and use `xs >>= f = concatMap f xs`, etc. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9781#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler