{-# LANGUAGE PolyKinds, ScopedTypeVariables, TypeOperators, GADTs #-} {-# OPTIONS_GHC -Wno-overlapping-patterns #-} -- don't want erroneous warning in test output -- if removing this doesn't change output, then -- remove it! module T13337 where import Data.Typeable import Data.Kind f :: forall k (a :: k). (Typeable k, Typeable a) => Proxy a -> Proxy Int f p = case eqT :: Maybe (k :~: Type) of Nothing -> Proxy Just Refl -> case eqT :: Maybe (a :~: Int) of Nothing -> Proxy Just Refl -> p