| otherwise = fromEnumError "Int64" x
enumFrom = integralEnumFrom
enumFromThen = integralEnumFromThen
+ enumFromTo = integralEnumFromTo
+ enumFromThenTo = integralEnumFromThenTo
instance Integral Int64 where
quot x@(I64# x#) y@(I64# y#)
% ------------------------------------------------------------------------------
-% $Id: PrelReal.lhs,v 1.11 2001/03/01 19:10:16 qrczak Exp $
+% $Id: PrelReal.lhs,v 1.12 2001/03/28 22:14:02 qrczak Exp $
%
% (c) The University of Glasgow, 1994-2000
%
integralEnumFrom n = map fromInteger [toInteger n .. toInteger (maxBound `asTypeOf` n)]
integralEnumFromThen :: (Integral a, Bounded a) => a -> a -> [a]
-integralEnumFromThen n1 n2
+integralEnumFromThen n1 n2
| i_n2 >= i_n1 = map fromInteger [i_n1, i_n2 .. toInteger (maxBound `asTypeOf` n1)]
| otherwise = map fromInteger [i_n1, i_n2 .. toInteger (minBound `asTypeOf` n1)]
where
i_n1 = toInteger n1
i_n2 = toInteger n2
+
+integralEnumFromTo :: (Integral a, Bounded a) => a -> a -> [a]
+integralEnumFromTo n m = map fromInteger [toInteger n .. toInteger m]
+
+integralEnumFromThenTo :: (Integral a, Bounded a) => a -> a -> a -> [a]
+integralEnumFromThenTo n1 n2 m
+ = map fromInteger [toInteger n1, toInteger n2 .. toInteger m]
\end{code}
| otherwise = fromEnumError "Word" x
enumFrom = integralEnumFrom
enumFromThen = integralEnumFromThen
+ enumFromTo = integralEnumFromTo
+ enumFromThenTo = integralEnumFromThenTo
instance Integral Word where
quot x@(W# x#) y@(W# y#)
= W32# (int2Word# i#)
| otherwise = toEnumError "Word32" i (minBound::Word32, maxBound::Word32)
#if WORD_SIZE_IN_BYTES == 4
- fromEnum (W32# x#) = I# (word2Int# x#)
- enumFrom = integralEnumFrom
- enumFromThen = integralEnumFromThen
-#else
fromEnum x@(W32# x#)
| x <= fromIntegral (maxBound::Int)
= I# (word2Int# x#)
| otherwise = fromEnumError "Word32" x
+ enumFrom = integralEnumFrom
+ enumFromThen = integralEnumFromThen
+ enumFromTo = integralEnumFromTo
+ enumFromThenTo = integralEnumFromThenTo
+#else
+ fromEnum (W32# x#) = I# (word2Int# x#)
enumFrom = boundedEnumFrom
enumFromThen = boundedEnumFromThen
#endif
| otherwise = fromEnumError "Word64" x
enumFrom = integralEnumFrom
enumFromThen = integralEnumFromThen
+ enumFromTo = integralEnumFromTo
+ enumFromThenTo = integralEnumFromThenTo
instance Integral Word64 where
quot x@(W64# x#) y@(W64# y#)
| otherwise = fromEnumError "Word64" x
enumFrom = integralEnumFrom
enumFromThen = integralEnumFromThen
+ enumFromTo = integralEnumFromTo
+ enumFromThenTo = integralEnumFromThenTo
instance Integral Word64 where
quot x@(W64# x#) y@(W64# y#)