Are you restricting Rep to non-recursive uses? Or has GHC's inliner finally learned how to behave well in the presence of recursion?
If anyone could explain (in precise terms) what it means to “behave well in the presence of recursion” then there’s a chance that it might. But up to now, no, it hasn’t I’m afraid. Simon From: glasgow-haskell-users-boun...@haskell.org [mailto:glasgow-haskell-users-boun...@haskell.org] On Behalf Of Jan-Willem Maessen Sent: 25 October 2012 20:19 To: José Pedro Magalhães Cc: GHC users Subject: Re: Proposal: EPHEMERAL pragma On Thu, Oct 25, 2012 at 9:56 AM, José Pedro Magalhães <j...@cs.uu.nl<mailto:j...@cs.uu.nl>> wrote: Hi all, Following up on a chat with Simon Peyton Jones at ICFP, I would like to discuss the possible introduction of a EPHEMERAL pragma. For example: {-# EPHEMERAL Rep #-} data Rep = ... This pragma would indicate that the programmer intends the Rep datatype not to be present in the final generated core code. Its proposed semantics are the following: 1. Make the compiler very keen to inline any functions that produce or consume Rep. 2. If Rep is exported, make all functions that operate on Rep INLINABLE (that is, make their code available for inlining in other modules). 3. Emit a warning if the generated core code still contains uses of Rep. Are you restricting Rep to non-recursive uses? Or has GHC's inliner finally learned how to behave well in the presence of recursion? -Jan-Willem Maessen
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users