{-# LANGUAGE AllowAmbiguousTypes #-} module Strongweak.Util.Typeable where import Data.Typeable typeRep' :: forall a. Typeable a => TypeRep typeRep' :: forall {k} (a :: k). Typeable a => TypeRep typeRep' = Proxy a -> TypeRep forall {k} (proxy :: k -> Type) (a :: k). Typeable a => proxy a -> TypeRep typeRep (forall (t :: k). Proxy t forall {k} (t :: k). Proxy t Proxy @a)