
#11383: CAFs lose sharing due to implicit call stacks -------------------------------------+------------------------------------- Reporter: simonmar | Owner: gridaphobe Type: bug | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 8.0.1-rc1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #11298 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonmar): `-ffull-laziness` lifts the expensive computation outside the implicit parameter, so recovering the sharing that was lost by the introduction of the implicit parameter constraint. It doesn't change the meaning. This is only an issue for CAFs, because functions already have a lambda at the outside so there's no sharing to lose. (CAFs are a notorious problem for stack tracing, incidentally, because you get to choose between losing sharing and losing information) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11383#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler