
#9369: Data.List.unfoldr does not fuse and is not inlined. -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: Type: bug | Status: patch Priority: normal | Milestone: 7.8.4 Component: | Version: 7.8.3 libraries/base | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Easy (less than 1 Unknown/Multiple | hour) Type of failure: Runtime | Blocked By: performance bug | Related Tickets: Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Changes (by dfeuer): * status: new => patch Comment: This took long enough to work through. I decided in the end that we shouldn't use any rules whatsoever for `unfoldr`, but should instead just `INLINE` it. A detailed explanation of my reasoning is included in the patch, but it comes down to two things: 1. Concerns about rules inlining `unfoldr` too early, and 2. The importance of inlining `unfoldr` whether it fuses or not to optimize common uses. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9369#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler