-- Chop off the higher octets. x1 = x `mod` 2^32, would be
-- redundant.
- x2 = x `mod` 2^(24 :: Integer)
- x3 = x `mod` 2^(16 :: Integer)
- x4 = (fromIntegral $ x `mod` 2^(8 :: Integer)) :: Int
+ x2 = x `mod` (2 ^ (24 :: Integer))
+ x3 = x `mod` (2 ^ (16 :: Integer))
+ x4 = (fromIntegral $ x `mod` (2 ^ (8 :: Integer))) :: Int
-- Perform right-shifts. x4 doesn't need a shift.
- shifted_x1 = (fromIntegral $ x `quot` 2^(24 :: Integer)) :: Int
- shifted_x2 = (fromIntegral $ x2 `quot` 2^(16 :: Integer)) :: Int
- shifted_x3 = fromIntegral $ x3 `quot` 2^(8 :: Integer) :: Int
+ shifted_x1 = (fromIntegral $ x `quot` (2 ^ (24 :: Integer))) :: Int
+ shifted_x2 = (fromIntegral $ x2 `quot` (2 ^ (16 :: Integer))) :: Int
+ shifted_x3 = (fromIntegral $ x3 `quot` (2 ^ (8 :: Integer))) :: Int
oct1 = toEnum shifted_x1 :: Octet
oct2 = toEnum shifted_x2 :: Octet
oct3 = toEnum shifted_x3 :: Octet
oct2 = fromEnum (octet2 addr)
oct3 = fromEnum (octet3 addr)
oct4 = fromEnum (octet4 addr)
- shifted_oct1 = oct1 * 2^(24 :: Integer)
- shifted_oct2 = oct2 * 2^(16 :: Integer)
- shifted_oct3 = oct3 * 2^(8 :: Integer)
+ shifted_oct1 = oct1 * (2 ^ (24 :: Integer))
+ shifted_oct2 = oct2 * (2 ^ (16 :: Integer))
+ shifted_oct3 = oct3 * (2 ^ (8 :: Integer))
-- | Given two addresses, find the number of the most significant bit
-- where they differ. If the addresses are the same, return
where
prop :: (Small Int64) -> Property
prop x =
- 0 <= x && x <= 2^(32 :: Integer) - 1 ==>
+ 0 <= x && x <= (2 ^ (32 :: Integer)) - 1 ==>
fromIntegral (fromEnum (toEnum (fromIntegral x) :: IPv4Address)) == x
-- According to the QuickCheck documentation, we need the "Large"