----------------------------------------------------------------------------- -- | -- Module : GHC.Magic -- Copyright : (c) The University of Glasgow 2009 -- License : see libraries/ghc-prim/LICENSE -- -- Maintainer : cvs-ghc@haskell.org -- Stability : internal -- Portability : non-portable (GHC Extensions) -- -- GHC magic. -- Use GHC.Exts from the base package instead of importing this -- module directly. -- ----------------------------------------------------------------------------- {-# OPTIONS_GHC -XNoImplicitPrelude #-} module GHC.Magic (inline) where -- | The call '(inline f)' reduces to 'f', but 'inline' has a BuiltInRule -- that tries to inline 'f' (if it has an unfolding) unconditionally -- The 'NOINLINE' pragma arranges that inline only gets inlined (and -- hence eliminated) late in compilation, after the rule has had -- a good chance to fire. inline :: a -> a {-# NOINLINE[0] inline #-} inline x = x