module GHC.Utils.Word64 ( intToWord64, word64ToInt, truncateWord64ToWord32, ) where import GHC.Prelude import GHC.Utils.Panic.Plain (assert) import Data.Word import GHC.Stack intToWord64 :: HasCallStack => Int -> Word64 intToWord64 :: HasCallStack => Int -> Word64 intToWord64 Int x = Bool -> Word64 -> Word64 forall a. HasCallStack => Bool -> a -> a assert (Int 0 Int -> Int -> Bool forall a. Ord a => a -> a -> Bool <= Int x) (Int -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral Int x) word64ToInt :: HasCallStack => Word64 -> Int word64ToInt :: HasCallStack => Word64 -> Int word64ToInt Word64 x = Bool -> Int -> Int forall a. HasCallStack => Bool -> a -> a assert (Word64 x Word64 -> Word64 -> Bool forall a. Ord a => a -> a -> Bool <= Int -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (Int forall a. Bounded a => a maxBound :: Int)) (Word64 -> Int forall a b. (Integral a, Num b) => a -> b fromIntegral Word64 x) truncateWord64ToWord32 :: Word64 -> Word32 truncateWord64ToWord32 :: Word64 -> Word32 truncateWord64ToWord32 = Word64 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral