27 lines
952 B
Haskell
27 lines
952 B
Haskell
import Data.Int
|
|
import Data.Word
|
|
import Control.Exception
|
|
|
|
f x = do
|
|
catch (print x) (\e -> print (e :: ArithException))
|
|
|
|
main = do
|
|
f ((- (-2147483647 - 1)) :: Int32)
|
|
f ((2000000000 + 2000000000) :: Int32)
|
|
f (((-2147483647) - 2147483647) :: Int32)
|
|
f ((46341 * 46341) :: Int32)
|
|
f ((((-2147483647) - 1) `div` (-1)) :: Int32)
|
|
f ((- ((-9223372036854775807) - 1)) :: Int64)
|
|
f ((5000000000000000000 + 5000000000000000000) :: Int64)
|
|
f (((-9223372036854775807) - 9223372036854775807) :: Int64)
|
|
f ((3037000500 * 3037000500) :: Int64)
|
|
f ((((-9223372036854775807) - 1) `div` (-1)) :: Int64)
|
|
f ((-4294967295) :: Word32)
|
|
f ((3000000000 + 3000000000) :: Word32)
|
|
f ((2147483647 - 4294967295) :: Word32)
|
|
f ((65537 * 65537) :: Word32)
|
|
f ((-18446744073709551615) :: Word64)
|
|
f ((10000000000000000000 + 10000000000000000000) :: Word64)
|
|
f ((9223372036854775807 - 18446744073709551615) :: Word64)
|
|
f ((4294967296 * 4294967296) :: Word64)
|