title: How to override Show instance of some basic types in Haskell?
body: <p>I'm writting some programs in Haskell, dealing with a lot of basic types like Word32/Word64 etc..
  I use ghci to test the functions frequently, see the results in terminal.</p>
  
  <p>To be convenient and fast, I always show data in hexadecimal e.g.</p>
  
  <pre><code>data Human = M Int | F Int
  instance Show Human where
      show M x = printf "man, age %d" x
      show F x = printf "woman, age %d" x
  </code></pre>
  
  <p>but I want <b>basic types</b> to be showed in hexadecimal (espacially in ghci).
  I found instance declaration cannot be overridden.
  and I <b>don't</b> want to warp all of them up like:</p>
  
  <pre><code>newtype MyInt = MyInt Int
  instance Show MyInt where
      ...
  </code></pre>
  
  <p>It looks a little bit stupid. </p>
  
  <p>Can I modify some code in the package <code>base</code> for ghc?
  I just want everything becoming "hex". I just want ghci showing "hex". how could I achieve it?</p>
  
  <h2>EDIT</h2>
  
  <p>Since all of us agree that override Show is not proper and impractical,
  <b>Any answer of "better ways to show Numeric in hexadecimal in ghci" is welcomed.</b></p>