
At this point the simplifier is in a bind because in order to fully inline everything, it would have to duplicate the "\n" string, and GHC
#10844: CallStack should not be inlined -------------------------------------+------------------------------------- Reporter: nomeata | Owner: gridaphobe Type: task | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1259 Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): presumably knows this is generally a bad idea. Yes, this is a key choice. Look at `CoreSubst.exprIsLiteral_maybe`. It calls `expandUnfolding_maybe`. Look at `CoreSyn.expandUnfolding_maybe`. It expands the unfolding if `uf_expandable` is True. That flag says if it's ok to expand an unfolding to make a RULE match. But in comment:20 I see "Expandable = True" for those top-level string literals. So they should be visible to the rule matcher. Some link in this chain isn't working. But I hope you can see the links now, so you can see what's not working? Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10844#comment:24 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler