Proposal: EPHEMERAL pragma

Jan-Willem Maessen jmaessen at
Thu Oct 25 21:18:44 CEST 2012

On Thu, Oct 25, 2012 at 9:56 AM, José Pedro Magalhães <jpm at> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Glasgow-haskell-users mailing list