<div dir="ltr">I&#39;m adding a foreign import in a GHC module from the RTS. I&#39;m using a CPP directive to avoid the import in the stage1 compiler, since the RTS function I need doesn&#39;t necessarily exist in that version of the RTS.<div style>

<br></div><div style>&gt; #if STAGE &lt; 2</div><div style>&gt;   … -- make do without the import</div><div style>&gt; #else</div><div style>&gt;   … -- do the import and use it</div><div style>&gt; #endif</div><div style>

<br></div><div style>Do you have any criticism of this overall design?</div><div style><br></div><div style>EG Is there a preference to use Config.cStage instead of CPP and the STAGE symbol?</div><div style><br></div><div style>

Thanks.<br></div><div style><br></div><div style>P.S. — for some context, this is for Solution 1 at <a href="http://ghc.haskell.org/trac/ghc/wiki/Plugins/ReinitializeGlobals">http://ghc.haskell.org/trac/ghc/wiki/Plugins/ReinitializeGlobals</a></div>

</div>