{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE CPP #-} module Data.Typeable.Compat ( Typeable, typeOf , cast, gcast , TypeRep, showsTypeRep , TyCon, tyConString, tyConPackage, tyConModule, tyConName , mkTyCon3, mkTyConApp, mkAppTy, mkFunTy , splitTyConApp, funResultTy, typeRepTyCon, typeRepArgs , typeRep , Proxy(..) ) where import Data.Typeable #if !MIN_VERSION_base(4,7,0) import Data.Proxy.Compat typeRep :: forall proxy a. Typeable a => proxy a -> TypeRep typeRep _ = typeOf (undefined :: a) #endif