abs x = x
signum 0 = 0
signum _ = 1
- fromInteger (S# i#) = W# (int2Word# i#)
- fromInteger (J# s# d#) = W# (integer2Word# s# d#)
+ fromInteger i = W# (integerToWord i)
instance Real Word where
toRational x = toInteger x % 1
| y /= 0 = (W# (x# `quotWord#` y#), W# (x# `remWord#` y#))
| otherwise = divZeroError
toInteger (W# x#)
- | i# >=# 0# = S# i#
- | otherwise = case word2Integer# x# of (# s, d #) -> J# s d
+ | i# >=# 0# = smallInteger i#
+ | otherwise = wordToInteger x#
where
i# = word2Int# x#
abs x = x
signum 0 = 0
signum _ = 1
- fromInteger (S# i#) = W8# (narrow8Word# (int2Word# i#))
- fromInteger (J# s# d#) = W8# (narrow8Word# (integer2Word# s# d#))
+ fromInteger i = W8# (narrow8Word# (integerToWord i))
instance Real Word8 where
toRational x = toInteger x % 1
divMod x@(W8# x#) y@(W8# y#)
| y /= 0 = (W8# (x# `quotWord#` y#), W8# (x# `remWord#` y#))
| otherwise = divZeroError
- toInteger (W8# x#) = S# (word2Int# x#)
+ toInteger (W8# x#) = smallInteger (word2Int# x#)
instance Bounded Word8 where
minBound = 0
abs x = x
signum 0 = 0
signum _ = 1
- fromInteger (S# i#) = W16# (narrow16Word# (int2Word# i#))
- fromInteger (J# s# d#) = W16# (narrow16Word# (integer2Word# s# d#))
+ fromInteger i = W16# (narrow16Word# (integerToWord i))
instance Real Word16 where
toRational x = toInteger x % 1
divMod x@(W16# x#) y@(W16# y#)
| y /= 0 = (W16# (x# `quotWord#` y#), W16# (x# `remWord#` y#))
| otherwise = divZeroError
- toInteger (W16# x#) = S# (word2Int# x#)
+ toInteger (W16# x#) = smallInteger (word2Int# x#)
instance Bounded Word16 where
minBound = 0
abs x = x
signum 0 = 0
signum _ = 1
- fromInteger (S# i#) = W32# (narrow32Word# (int2Word# i#))
- fromInteger (J# s# d#) = W32# (narrow32Word# (integer2Word# s# d#))
+ fromInteger i = W32# (narrow32Word# (integerToWord i))
instance Enum Word32 where
succ x
| otherwise = divZeroError
toInteger (W32# x#)
#if WORD_SIZE_IN_BITS == 32
- | i# >=# 0# = S# i#
- | otherwise = case word2Integer# x# of (# s, d #) -> J# s d
+ | i# >=# 0# = smallInteger i#
+ | otherwise = word2Integer x#
where
i# = word2Int# x#
#else
- = S# (word2Int# x#)
+ = smallInteger (word2Int# x#)
#endif
instance Bits Word32 where
abs x = x
signum 0 = 0
signum _ = 1
- fromInteger (S# i#) = W64# (int2Word# i#)
- fromInteger (J# s# d#) = W64# (integer2Word# s# d#)
+ fromInteger i = W64# (integerToWord i)
instance Enum Word64 where
succ x
| y /= 0 = (W64# (x# `quotWord#` y#), W64# (x# `remWord#` y#))
| otherwise = divZeroError
toInteger (W64# x#)
- | i# >=# 0# = S# i#
- | otherwise = case word2Integer# x# of (# s, d #) -> J# s d
+ | i# >=# 0# = smallInteger i#
+ | otherwise = wordToInteger x#
where
i# = word2Int# x#