[fix enumFromThenTo instances
John Meacham <john@repetae.net>**20060721101214] hunk ./lib/base/Prelude.hs 891
+
hunk ./lib/base/Prelude.hs 905
-    enumFromThenTo x y z = f x where
+    enumFromThenTo x y z | y >= x = f x where
+        inc = y - x
+        f x | x <= z = x:f (x + inc)
+            | otherwise = []
+    enumFromThenTo x y z  = f x where
hunk ./lib/base/Prelude.hs 911
-        f x | x <= z = x:f (x + z)
+        f x | x >= z = x:f (x + inc)
hunk ./lib/base/Prelude.hs 917
+    enumFrom c        = map toEnum [fromEnum c .. fromEnum (maxBound::Char)]
+    enumFromThen c c' = map toEnum [fromEnum c, fromEnum c' .. fromEnum lastChar]
+                      where lastChar :: Char
+                            lastChar | c' < c    = minBound
+                                     | otherwise = maxBound
hunk ./lib/base/Prelude.hs 936
-    enumFromThenTo x y z = f x where
+    enumFromThenTo x y z | y >= x = f x where
+        inc = y - x
+        f x | x <= z = x:f (x + inc)
+            | otherwise = []
+    enumFromThenTo x y z  = f x where
hunk ./lib/base/Prelude.hs 942
-        f x | x <= z = x:f (x + z)
+        f x | x >= z = x:f (x + inc)