{-# LANGUAGE MagicHash #-}

module Data.HashMap.UnsafeShift
    ( unsafeShiftL
    , unsafeShiftR
    ) where

import GHC.Exts (Word(W#), Int(I#), uncheckedShiftL#, uncheckedShiftRL#)

unsafeShiftL :: Word -> Int -> Word
unsafeShiftL (W# x#) (I# i#) = W# (x# `uncheckedShiftL#` i#)
{-# INLINE unsafeShiftL #-}

unsafeShiftR :: Word -> Int -> Word
unsafeShiftR (W# x#) (I# i#) = W# (x# `uncheckedShiftRL#` i#)
{-# INLINE unsafeShiftR #-}