src/Distribution/Compat/Typeable.hs

    {-# LANGUAGE CPP #-}
    {-# LANGUAGE ScopedTypeVariables #-}
    module Distribution.Compat.Typeable (
        Typeable,
        TypeRep,
        typeRep,
        ) where

    #if MIN_VERSION_base(4,7,0)
    import Data.Typeable (Typeable, TypeRep, typeRep)
    #else
    import Data.Typeable (Typeable, TypeRep, typeOf)
    #endif

    #if !MIN_VERSION_base(4,7,0)
    typeRep :: forall a proxy. Typeable a => proxy a -> TypeRep
    typeRep _ = typeOf (undefined :: a)
    #endif