diff --git a/ghc/lib/exts/NumExts.lhs b/ghc/lib/exts/NumExts.lhs
index b3c4fe905165935dad2bdb42f2e04dd2a06beebb..77968f42544891a0e454cc4cb0833456be7208fc 100644
--- a/ghc/lib/exts/NumExts.lhs
+++ b/ghc/lib/exts/NumExts.lhs
@@ -10,8 +10,17 @@ module NumExts
        (
          doubleToFloat   -- :: Double -> Float
        , floatToDouble   -- :: Double -> Float
+
        , showHex         -- :: Integral a => a -> ShowS
        , showOct         -- :: Integral a => a -> ShowS
+       , showBin         -- :: Integral a => a -> ShowS
+
+	 -- general purpose number->string converter.
+       , showIntAtBase   -- :: Integral a 
+			 -- => a		-- base
+			 -- -> (a -> Char)      -- digit to char
+			 -- -> a                -- number to show.
+			 -- -> ShowS
        ) where
 
 import Char (ord, chr)
@@ -77,4 +86,10 @@ showOct n r =
  showString "0o" $
  showIntAtBase 8 (toChrOct) n r
  where toChrOct d = chr (ord_0   + fromIntegral d)
+
+showBin :: Integral a => a -> ShowS
+showBin n r = 
+ showString "0b" $
+ showIntAtBase 2 (toChrOct) n r
+ where toChrOct d = chr (ord_0 + fromIntegral d)
 \end{code}