{-# language MagicHash #-} module Control.Monad.IO.Unlifted ( IO#(..) , lift , unlift ) where import GHC.IO (IO(IO)) import Data.Unlifted (IO#(..)) lift :: IO# a -> IO a lift :: forall a. IO# a -> IO a lift (IO# State# RealWorld -> (# State# RealWorld, a #) f) = (State# RealWorld -> (# State# RealWorld, a #)) -> IO a forall a. (State# RealWorld -> (# State# RealWorld, a #)) -> IO a IO State# RealWorld -> (# State# RealWorld, a #) f unlift :: IO a -> IO# a unlift :: forall a. IO a -> IO# a unlift (IO State# RealWorld -> (# State# RealWorld, a #) f) = (State# RealWorld -> (# State# RealWorld, a #)) -> IO# a forall a. (State# RealWorld -> (# State# RealWorld, a #)) -> IO# a IO# State# RealWorld -> (# State# RealWorld, a #) f