{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE LinearTypes #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnboxedTuples #-}
{-# OPTIONS_GHC -Wno-missing-export-lists #-}

module Data.Packed.Internal where

import GHC.Base
import GHC.Exts

{-# INLINE unPtr #-}
unPtr :: Ptr a %1 -> Addr#
unPtr :: forall a. Ptr a %1 -> Addr#
unPtr (Ptr Addr#
a) = Addr#
a

{-# INLINE unInt #-}
unInt :: Int %1 -> Int#
unInt :: Int %1 -> Int#
unInt (I# Int#
i) = Int#
i

{-# INLINE unsafeDupablePerformIO #-}
unsafeDupablePerformIO :: IO a -> a
unsafeDupablePerformIO :: forall a. IO a -> a
unsafeDupablePerformIO (IO State# RealWorld -> (# State# RealWorld, a #)
m) = case (State# RealWorld -> (# State# RealWorld, a #))
-> (# State# RealWorld, a #)
forall o. (State# RealWorld -> o) -> o
runRW# State# RealWorld -> (# State# RealWorld, a #)
m of (# State# RealWorld
_, !a
a #) -> a
a