module HbcWord(module HbcWord,Word) where
import Data.Word
import Data.Bits

--type Word=Word.Word32
--type Short=Word16

bitAnd :: a -> a -> a
bitAnd a
x a
y = a
x a -> a -> a
forall a. Bits a => a -> a -> a
.&. a
y
bitOr :: a -> a -> a
bitOr a
x a
y = a
x a -> a -> a
forall a. Bits a => a -> a -> a
.|. a
y
bitXor :: a -> a -> a
bitXor a
x a
y = a -> a -> a
forall a. Bits a => a -> a -> a
xor a
x a
y
bitRsh :: a -> Int -> a
bitRsh a
x Int
y = a -> Int -> a
forall a. Bits a => a -> Int -> a
shiftR a
x Int
y
bitLsh :: a -> Int -> a
bitLsh a
x Int
y = a -> Int -> a
forall a. Bits a => a -> Int -> a
shiftL a
x Int
y

intToWord :: Int -> Word
intToWord = Int -> Word
forall a b. (Integral a, Num b) => a -> b
fromIntegral :: Int->Word
wordToInt :: Word -> Int
wordToInt = Word -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral :: Word->Int