typeOf :: a -> TypeRep
ghcighci> import Type.Reflection ghci> :t typeOf typeOf :: Typeable a => a -> TypeRep a ghci> typeOf True Bool ghci> typeOf [3, 1, 2] [Integer]