packages feed

symbolize-0.1.0.0: src/Symbolize/Accursed.hs

{-# LANGUAGE MagicHash, UnboxedTuples #-}
module Symbolize.Accursed (accursedUnutterablePerformIO) where

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

-- This \"function\" has a superficial similarity to 'System.IO.Unsafe.unsafePerformIO' but
-- it is in fact a malevolent agent of chaos.
--
-- Full warning: https://hackage.haskell.org/package/bytestring-0.12.0.2/docs/Data-ByteString-Internal.html#v:accursedUnutterablePerformIO
-- (This definition is also taken from there)
accursedUnutterablePerformIO :: IO a -> a
accursedUnutterablePerformIO (IO m) = case m realWorld# of (# _, r #)   -> r
{-# INLINE accursedUnutterablePerformIO #-}