import Data.Bits

bitwise :: Int -> Int -> IO ()
bitwise a b =
  mapM_
    print
    [ a .&. b
    , a .|. b
    , a `xor` b
    , complement a
    , shiftL a b 
    , shiftR a b 
    , shift a b 
      
    , shift a (-b)
    , rotateL a b 
    , rotateR a b 
    , rotate a b 
      
    , rotate a (-b)
    ]

main :: IO ()
main = bitwise 255 170