Yes, it’s possible that he sequence you are seeing is what is happening to you. But why is that not what you want to see? What are you trying to achieve?
Since this function might be applied to many different arguments, it’s probably not a good idea to do anything unconditionally… S From: David Feuer <[email protected]> Sent: 27 March 2018 01:04 To: Simon Peyton Jones <[email protected]>; [email protected] Subject: RE: Missed beta reductions Hmmm. So you think maybe it's doing something like (roughly; I don't have the exact case in front of me) (\p q -> f p (g p q)) this that ==> beta reduce let p = this q = that in f p (g p q) ==> inline q let p = this in f p (g p that) ? I tried marking the "this" in question INLINE CONLIKE [0]. Shouldn't that tell GHC that duplicating it is fine? I really want to see it for RULES. David Feuer Well-Typed, LLP -------- Original message -------- From: Simon Peyton Jones <[email protected]<mailto:[email protected]>> Date: 3/26/18 7:14 PM (GMT-05:00) To: David Feuer <[email protected]<mailto:[email protected]>>, [email protected]<mailto:[email protected]> Subject: RE: Missed beta reductions GHC always beta-reduces. It does not always inline. For that: -ddump-inlinings Simon From: ghc-devs <[email protected]<mailto:[email protected]>> On Behalf Of David Feuer Sent: 26 March 2018 23:59 To: [email protected]<mailto:[email protected]> Subject: Missed beta reductions What's the best way to find spots where GHC saw a redex and choose not to beta reduce? Is there a flag for that? It could be useful when trying to figure out why rules aren't firing. David Feuer Well-Typed, LLP
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
