enumDeltaIntegerFB c x d = x `seq` (x `c` enumDeltaIntegerFB c (x+d) d)
enumDeltaInteger :: Integer -> Integer -> [Integer]
-enumDeltaInteger x d = x `seq` x : enumDeltaInteger (x+d) d
+enumDeltaInteger x d = x `seq` (x : enumDeltaInteger (x+d) d)
-- strict accumulator, as for Int
-- so, head (drop 1000000 [1 .. ] works
-- patch by Don Stewart <dons@galois.com>
numericEnumFrom n = numericEnumFromThen n (n + 1)
numericEnumFromThen :: (Fractional a) => a -> a -> [a]
-numericEnumFromThen n m = n `seq` m `seq` n : numericEnumFromThen m (m+m-n)
+numericEnumFromThen n m = n `seq` m `seq` (n : numericEnumFromThen m (m+m-n))
numericEnumFromTo :: (Ord a, Fractional a) => a -> a -> [a]
numericEnumFromTo n m = takeWhile (<= m + 1/2) (numericEnumFrom n)