aboutsummaryrefslogtreecommitdiff
path: root/haddock-library/vendor/attoparsec-0.13.1.0/Data/Attoparsec/Internal/Fhthagn.hs
blob: 0e00ed2c4a9b9d8878d6e1410213bbec726ae94d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{-# LANGUAGE BangPatterns, Rank2Types, OverloadedStrings,
    RecordWildCards, MagicHash, UnboxedTuples #-}

module Data.Attoparsec.Internal.Fhthagn
    (
      inlinePerformIO
    ) where

import GHC.Base (realWorld#)
import GHC.IO (IO(IO))

-- | Just like unsafePerformIO, but we inline it. Big performance gains as
-- it exposes lots of things to further inlining. /Very unsafe/. In
-- particular, you should do no memory allocation inside an
-- 'inlinePerformIO' block. On Hugs this is just @unsafePerformIO@.
inlinePerformIO :: IO a -> a
inlinePerformIO (IO m) = case m realWorld# of (# _, r #) -> r
{-# INLINE inlinePerformIO #-}