
#9476: Implement late lambda-lifting -------------------------------------+------------------------------------- Reporter: simonpj | Owner: nfrisby Type: feature | Status: new request | Milestone: Priority: normal | Version: 7.8.2 Component: Compiler | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by simonpj): Thoughts about the wiki page (which is a fantastic start): * The "extended consequences" section is great. But could you give a small example of each point? Otherwise it is hard to grok. There are lots of other places where an example would be extremely useful. To take just one "If an LNE function f occurs in another LNE function g and we only lift g, then it will spoil f: and it will no longer be an LNE, because it will now be an argument to llf_g." * I recall that you implemented a more-or-less complex analysis to try to get the good consequences without the bad ones. Is it worth sketching what the analysis does? The complexity here is my principal worry about the whole thing. * Small point: the `$(theRHS 'a 'b)` notation is more distracting than helpful. I'd use something more informal `(..a...b...)`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9476#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler