content: 
  -- !!! Testing Typeable instances
  module Main(main) where
  
  import Data.Dynamic
  import Data.Typeable (TyCon, TypeRep, typeOf)
  import Data.Array
  import Data.Array.MArray
  import Data.Array.ST
  import Data.Array.IO
  import Data.Array.Unboxed
  import Data.Complex
  import Data.Int
  import Data.Word
  import Data.IORef
  import System.IO
  import Control.Monad.ST
  import System.Mem.StableName
  import System.Mem.Weak
  import Foreign.StablePtr
  import Control.Exception
  import Foreign.C.Types
  
  main :: IO ()
  main = do
     print (typeOf (undefined :: [()]))
     print (typeOf (undefined :: ()))
     print (typeOf (undefined :: ((),())))
     print (typeOf (undefined :: ((),(),())))
     print (typeOf (undefined :: ((),(),(),())))
     print (typeOf (undefined :: ((),(),(),(),())))
     print (typeOf (undefined :: (() -> ())))
     print (typeOf (undefined :: (Array () ())))
     print (typeOf (undefined :: Bool))
     print (typeOf (undefined :: Char))
     print (typeOf (undefined :: (Complex ())))
     print (typeOf (undefined :: Double))
     print (typeOf (undefined :: (Either () ())))
     print (typeOf (undefined :: Float))
     print (typeOf (undefined :: Handle))
     print (typeOf (undefined :: Int))
     print (typeOf (undefined :: Integer))
     print (typeOf (undefined :: IO ()))
     print (typeOf (undefined :: (Maybe ())))
     print (typeOf (undefined :: Ordering))
  
     print (typeOf (undefined :: Dynamic))
     print (typeOf (undefined :: (IORef ())))
     print (typeOf (undefined :: Int8))
     print (typeOf (undefined :: Int16))
     print (typeOf (undefined :: Int32))
     print (typeOf (undefined :: Int64))
     print (typeOf (undefined :: (ST () ())))
     print (typeOf (undefined :: (StableName ())))
     print (typeOf (undefined :: (StablePtr ())))
     print (typeOf (undefined :: TyCon))
     print (typeOf (undefined :: TypeRep))
     print (typeOf (undefined :: Word8))
     print (typeOf (undefined :: Word16))
     print (typeOf (undefined :: Word32))
     print (typeOf (undefined :: Word64))
  
     print (typeOf (undefined :: ArithException))
     print (typeOf (undefined :: AsyncException))
     print (typeOf (undefined :: (IOArray () ())))
     print (typeOf (undefined :: (IOUArray () ())))
     print (typeOf (undefined :: (STArray () () ())))
     print (typeOf (undefined :: (STUArray () () ())))
     print (typeOf (undefined :: (StableName ())))
     print (typeOf (undefined :: (StablePtr ())))
     print (typeOf (undefined :: (UArray () ())))
     print (typeOf (undefined :: (Weak ())))
  
     print (typeOf (undefined :: CChar))
     print (typeOf (undefined :: CSChar))
     print (typeOf (undefined :: CUChar))
     print (typeOf (undefined :: CShort))
     print (typeOf (undefined :: CUShort))
     print (typeOf (undefined :: CInt))
     print (typeOf (undefined :: CUInt))
     print (typeOf (undefined :: CLong))
     print (typeOf (undefined :: CULong))
     print (typeOf (undefined :: CLLong))
     print (typeOf (undefined :: CULLong))
     print (typeOf (undefined :: CFloat))
     print (typeOf (undefined :: CDouble))
  
     print (typeOf (undefined :: CPtrdiff))
     print (typeOf (undefined :: CSize))
     print (typeOf (undefined :: CWchar))
     print (typeOf (undefined :: CSigAtomic))
     print (typeOf (undefined :: CClock))
     print (typeOf (undefined :: CTime))
  