[minor fixups to libraries for better generated code
John Meacham <john@repetae.net>**20070606074537] hunk ./lib/base/Data/Char.hs 17
+import Data.Word(Word())
hunk ./lib/base/Data/Char.hs 52
-  | isDigit c            =  fromEnum c - fromEnum '0'
-  | c >= 'a' && c <= 'f' =  fromEnum c - fromEnum 'a' + 10
-  | c >= 'A' && c <= 'F' =  fromEnum c - fromEnum 'A' + 10
+  | isDigit c            =  ord c - ord '0'
+  | c >= 'a' && c <= 'f' =  ord c - (ord 'a' + 10)
+  | c >= 'A' && c <= 'F' =  ord c - (ord 'A' + 10)
hunk ./lib/base/Data/Char.hs 58
-intToDigit i
-  | i >= 0  && i <=  9   =  chr (ord '0' + i)
-  | i >= 10 && i <= 15   =  chr (ord 'a' + i - 10)
-  | otherwise            =  error "Char.intToDigit: not a digit"
+intToDigit i = f (fromIntegral i :: Word) where
+    f w | w < 10 = chr (ord '0' + i)
+        | w < 16 = chr ((ord 'a' - 10) + i)
+        | otherwise = error "Char.intToDigit: not a digit"
hunk ./lib/base/Jhc/Order.hs 76
+
+    [] < [] = False
+    [] < _ = True
+    (x:xs) < (y:ys) = if x == y then xs < ys else x < y
+
+    x > y = y < x
+
+    x >= y = not (x < y)
+    x <= y = not (y < x)
+