diff --git a/ghc/lib/exts/Word.lhs b/ghc/lib/exts/Word.lhs index 2b3c3477ce0a6eee097ccb2f40486470ebaa56e6..6958a32b3bbfa95633b79608733b4b0ba9bdd9f9 100644 --- a/ghc/lib/exts/Word.lhs +++ b/ghc/lib/exts/Word.lhs @@ -659,17 +659,12 @@ instance Enum Word32 where = fromEnumError "Word32" x enumFrom w = [w .. maxBound] - enumFromTo w1 w2 = eftt32 increasing w1 diff_f last + enumFromTo w1 w2 + | w1 <= w2 = eftt32 True{-increasing-} w1 diff_f last + | otherwise = [] where - increasing = w1 <= w2 - - last - | increasing = (> w2) - | otherwise = (< w2) - - diff_f - | increasing = \ x -> x + 1 - | otherwise = \ x -> x - 1 + last = (> w2) + diff_f x = x + 1 enumFromThen w1 w2 = [w1,w2 .. last] where