signum x | x > 0 = 1
signum 0 = 0
signum _ = -1
- fromInteger (S# i#) = I8# (narrow8Int# i#)
- fromInteger (J# s# d#) = I8# (narrow8Int# (integer2Int# s# d#))
+ fromInteger i = I8# (narrow8Int# (toInt# i))
instance Real Int8 where
toRational x = toInteger x % 1
| x == minBound && y == (-1) = overflowError
| otherwise = (I8# (narrow8Int# (x# `divInt#` y#)),
I8# (narrow8Int# (x# `modInt#` y#)))
- toInteger (I8# x#) = S# x#
+ toInteger (I8# x#) = smallInteger x#
instance Bounded Int8 where
minBound = -0x80
signum x | x > 0 = 1
signum 0 = 0
signum _ = -1
- fromInteger (S# i#) = I16# (narrow16Int# i#)
- fromInteger (J# s# d#) = I16# (narrow16Int# (integer2Int# s# d#))
+ fromInteger i = I16# (narrow16Int# (toInt# i))
instance Real Int16 where
toRational x = toInteger x % 1
| x == minBound && y == (-1) = overflowError
| otherwise = (I16# (narrow16Int# (x# `divInt#` y#)),
I16# (narrow16Int# (x# `modInt#` y#)))
- toInteger (I16# x#) = S# x#
+ toInteger (I16# x#) = smallInteger x#
instance Bounded Int16 where
minBound = -0x8000
I32# (x# `modInt32#` y#))
toInteger x@(I32# x#)
| x >= fromIntegral (minBound::Int) && x <= fromIntegral (maxBound::Int)
- = S# (int32ToInt# x#)
+ = smallInteger (int32ToInt# x#)
| otherwise = case int32ToInteger# x# of (# s, d #) -> J# s d
divInt32#, modInt32# :: Int32# -> Int32# -> Int32#
signum x | x > 0 = 1
signum 0 = 0
signum _ = -1
- fromInteger (S# i#) = I32# (narrow32Int# i#)
- fromInteger (J# s# d#) = I32# (narrow32Int# (integer2Int# s# d#))
+ fromInteger i = I32# (narrow32Int# (toInt# i))
instance Enum Int32 where
succ x
| x == minBound && y == (-1) = overflowError
| otherwise = (I32# (narrow32Int# (x# `divInt#` y#)),
I32# (narrow32Int# (x# `modInt#` y#)))
- toInteger (I32# x#) = S# x#
+ toInteger (I32# x#) = smallInteger x#
instance Read Int32 where
readsPrec p s = [(fromIntegral (x::Int), r) | (x, r) <- readsPrec p s]
toInteger x@(I64# x#)
| x >= fromIntegral (minBound::Int) &&
x <= fromIntegral (maxBound::Int)
- = S# (int64ToInt# x#)
+ = smallInteger (int64ToInt# x#)
| otherwise = case int64ToInteger# x# of
(# s, d #) -> J# s d
signum x | x > 0 = 1
signum 0 = 0
signum _ = -1
- fromInteger (S# i#) = I64# i#
- fromInteger (J# s# d#) = I64# (integer2Int# s# d#)
+ fromInteger i = I64# (toInt# i)
instance Enum Int64 where
succ x
| y == 0 = divZeroError
| x == minBound && y == (-1) = overflowError
| otherwise = (I64# (x# `divInt#` y#), I64# (x# `modInt#` y#))
- toInteger (I64# x#) = S# x#
+ toInteger (I64# x#) = smallInteger x#
instance Read Int64 where
readsPrec p s = [(fromIntegral (x::Int), r) | (x, r) <- readsPrec p s]