Give Word a proper Show instance
authorIan Lynagh <igloo@earth.li>
Fri, 16 Sep 2011 01:57:44 +0000 (02:57 +0100)
committerIan Lynagh <igloo@earth.li>
Fri, 16 Sep 2011 01:57:44 +0000 (02:57 +0100)
It was going via Integer before

GHC/Word.hs

index 443f083..6dd308a 100644 (file)
@@ -50,7 +50,14 @@ import GHC.Float ()     -- for RealFrac methods
 data Word = W# Word# deriving (Eq, Ord)
 
 instance Show Word where
-    showsPrec p x = showsPrec p (toInteger x)
+    showsPrec _ (W# w) = showWord w
+
+showWord :: Word# -> ShowS
+showWord w# cs
+ | w# `ltWord#` 10## = C# (chr# (ord# '0'# +# word2Int# w#)) : cs
+ | otherwise = case chr# (ord# '0'# +# word2Int# (w# `remWord#` 10##)) of
+               c# ->
+                   showWord (w# `quotWord#` 10##) (C# c# : cs)
 
 instance Num Word where
     (W# x#) + (W# y#)      = W# (x# `plusWord#` y#)